项目环境配置和用户表设计
Oran

开发知乎。这个牛。mark一下。等多更新几集后来观摩学习。

墨生人

前排留名,跟随大神脚步前进

messikiller

求速更,求速更~

尼好再见

持续关注,希望能在这个系列中学到一些新的技巧!

zyzplzyz

我想问下为什么要把app目录改成Source root?

JellyBool

这样的话,在 pgpstorm 中,你在 app 目录下创建新的文件夹或者 php 文件的时候,只要符合 psr-4 的标准,phpstorm 就会自动加上命名空间

zyzplzyz

谢谢,指点,学习了

kunsect7

Jelly 最近更新速度可以阿

anyshioz

你好,请问用laravel在构建用户登陆模块,session->put('username',$user->username);然后dd(session()-all());有内容但是没有_token,url,等信息,然后以文件驱动的session,在storage/framework/session里面也没有写如信息,请问如何解决呢?(也就是我死活判断不了用户是否登陆了,获取不到登陆用户的session信息,如何解决呢?)

红鲤鱼与绿鲤鱼与王小驴

前端使用的是vue吗

YVEND

听起来是如此的吊

mostwin

吊的很啊!!

richiekingli

settings字段应该为nullable吧

JellyBool

嗯哼,视频中不是么?

我看了一下,貌似视频中拼写错了。You are right !

richiekingli

希望新手看视频的时候能看下下面的评论,或者自己debug

laravel0304
laravel new zhihu-app

请问这命令是 oh-my-zsh 的插件?
我是新会员,以前的视频还没有看,希望以后的课程能对这样类似的知识点做一下简单的介绍,或者在课程介绍里列清楚也行,要不然会有很多困惑。

laravel0304

还有类似楼上兄台提及的 『Source root』问题。

JellyBool

我觉得新手还是先看基础教程先吧,不然可能会遇到更多坑

https://laravist.com/series/laravel-5-basic

laravel0304

@JellyBool 你的这个PHPstorm主题 叫啥名字类?

laravel0304

Yes ,就是这个主题,很棒。但是左侧的Tree你是怎么搞的,你这种文件夹图标很nice?装的插件么?
我按照PHPstorm视频装了 color ide插件,颜色是变过来了,但是图标的样式啊都是老的,跟你的UI不一样。-。-

laravel0304

我找了一个Treed 的UI插件,叫Afterglow Theme 。现实效果没你的好,你的插件叫啥啊大神

hard88

我的5.3无法通过migrate创建表,报SQLSTATE[42000]错误,通过create-project,composer create-project --prefer-dist laravel/laravel xx创建的项目,网上找了很多没有头绪,请教一下,谢谢

JellyBool

具体的错误信息是什么?

hard88

[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the r
ight syntax to use near 'json not null, remember_token varchar(100) null, created_at timestamp null, ' at line 1 (SQL: create table users (id int unsigned not n
ull auto_increment primary key, name varchar(255) not null, email varchar(255) not null, password varchar(60) not null, avatar varchar(255) not null, `confirmat
ion_token varchar(255) not null, is_active smallint not null default '0', questions_count int not null default '0', answers_count int not null default '0', comm
ents_count int not null default '0', favorites_count int not null default '0', likes_count int not null default '0', followers_count int not null default '0', f
ollowings_count int not null default '0', settings json not null, remember_token varchar(100) null, created_at timestamp null, updated_at` timestamp null) defau
lt character set utf8 collate utf8_unicode_ci)

[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the r
ight syntax to use near 'json not null, remember_token varchar(100) null, created_at timestamp null, ' at line 1

JellyBool

貌似是这个版本的 MariaDB 不支持 json() 这种吧。

hard88

额,你用的什么版本, MariaDB版本怎么修改呢

hard88

第一次我没注意用的5.1,是可以创建成功的,改了5.3就不行

JellyBool

我刚刚看了一下:

This is a similar issue to having old MySQL versions. We made this change in 5.2. Either upgrade to a new version, or, just don't use the json type in migrations. If you really want to use that in the migration, and want the old database version, you could stay on Laravel 5.1 LTS.

laravel 5.3 的时候,json() 有点不一样了,要么是升级到最新版本的 MariaDB ,要么使用 laravel 5.1 LTS。

我的是直接用的 mysql

hard88

明白了,知乎这个也是为了同时学习5.3,目前我的MariaDB是10.1.9,更新到目前稳定版的10.1.19这样就可以了?

hard88

因为之前5.1创建成功了,我新建的5.3直接引用了5.1创建的数据库,但是一直报错的形式是没有在User.php的filllable添加修改字段导致的error,一直说jason('settings')的setting问题,所以想重新建表单,发现了这个问题

hard88

5.1是用的5.1.x-dev

yijiang

为什么我用的MYSQL还是跟他们报一样的错~laravel5.3

JellyBool

主要是看 Mysql 的版本吧:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 331
Server version: 5.7.12-0ubuntu1.1 (Ubuntu)

我这里使用的是这个,貌似这个需要 mysql 5.7 以上

Frank Wang

Jelly,问一个配置Homestead的问题哈。我配置完成Homestead之后,vagrant ssh登陆之后在Homestead里面也能看到 /home/vagrant/Code 目录,但是本机在 ~/Code 建立的Laravel项目却没有同步过来(在Homestead的/home/vagrant/Code 下输入 ls 始终显示为空)请问这是为什么呢?

JellyBool

目前的信息来说,我看不出什么原因。基本上就是配置问题吧,配置贴出来看看?

Frank Wang

这是Homestead.yaml文件的内容

ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:

  • ~/.ssh/id_rsa

folders:

  • map: /Users/Major/Code
    to: /home/vagrant/Code
    type: "nfs"

sites:

  • map: homestead.app
    to: /home/vagrant/Code/Laravel/public

databases:

  • homestead

variables:

  • key: APP_ENV
    value: local

这是/etc/hosts内容

Host Database

localhost is used to configure the loopback interface

when the system is booting. Do not change this entry.

127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost

192.168.10.10 homestead.app

JellyBool

你改一下这个 folder 的 map:

folders:
    - map: ~/Code
      to: /home/vagrant/Code

然后在 Homestead 的目录执行

vagrant reload --provision
Frank Wang

改了,其实我之前Google之后就是按照这个来了一次,还是不行……崩溃了啊,按说ssh之后能够打开/home/vagrant/Code肯定挂载共享文件夹没有问题吧。

JellyBool

那这个就很尴尬了,这样的话,基本上我也看不出什么问题。重装吧

Frank Wang

好吧,在这里卡了一晚上了……

John Howard

老大,json的我也报错了,有没有其他解决方案呢?

JellyBool

呀,这个问题没想到这么多人没有满足。其实直接升级一下 mysql 就可以了,或者直接用 homestead 作为开发环境就 OK。

实在不行的话,你就创建一个普通的 string column 吧。

John Howard

试试string column

cc0roby

good

cc0roby

我就试试mark文发

噼里啪啦小蛋哥

跟着来一遍,学点小技巧

skywing

为了这个项目,订阅了半年,很想学习下5.3的消息通知,之前5.1结合node的socket.io做的很麻烦!

JellyBool

是指laravel 5.3 的 notification 么

skywing

是的,不知道能不能实现实时通知的效果,对5.3不了解。。

JellyBool

实时通知目前最好的解决方案我觉得还是 websocket,所以暂时来说,socket.io 貌似是逃不过的

skywing

那notification有什么用啊。。

JellyBool

就是做站内通知,但是还是不能实时通知的。

mikezhang

这些用户回答数,收藏数,等 应该分表吧 用的时候用关联模型查一下就好

JellyBool

从我目前的经验来看,这个总数的数目,我觉得还是在一个字段好,不管是直接使用还是开放 API,都是比关联表好。

Levante

@JellyBool 請問本課程是用laravel 5.3版嗎?

JellyBool

是的。5.3 版本,你最好也是用的这个版本

zddragon

@JellyBool 你用的是哪个VPN?

JellyBool

我目前还是用的这个 http://gjsq.me/5072618

最近貌似改版了,貌似还行