项目环境配置和用户表设计
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 的插件?
我是新会员,以前的视频还没有看,希望以后的课程能对这样类似的知识点做一下简单的介绍,或者在课程介绍里列清楚也行,要不然会有很多困惑。

HectorChan

不是插件,你要是用的oh-my-zsh的话,安装一个laravel,然后把设置一个环境变量就可以了!!
composer global require "laravel/installer=~1.1"
sudo bash -c "echo 'alias laravel=~/.composer/vendor/bin/laravel' >> ~/.zshrc"
source ~/.zshrc

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 。现实效果没你的好,你的插件叫啥啊大神

JeaNile

这个主题在PHPstorm中能用吗

JellyBool

可以的,我就是用的这个

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

想问下,我现在用的环境是laragon,mysql可以直接用mysql而不是mariadb么

JellyBool

理论上是可以的。

hard88

5.1是用的5.1.x-dev

bit世界风

你的这个问题我也遇到了 我修改user 表 $table->integer('is_active')->default(0); 就可以migrate

nanibigoo

上面讨论的好像是la 5.3 mariadb没法用json 的问题。5.4版本也有这个问题

JellyBool

这个主要是看 mysql 的版本

nanibigoo

因为使用的是xampp,自带mariadb,偷懒

y-s-y

你把这个问题解决了吗?

JellyBool

你先直接用 text 字段也是可以的

hard88

当时已经解决了,就是使用mysql最新5.7版本就好了,mariadb最新版本不行,都试过了,就直接用mysql

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

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

jasester

不可以单独购买某套教程吗?学生当是在没有太多的预付钱(:

JellyBool

暂时没有这个选项

chenze007

签到 功能会讲到么 能给简单的说说么 现在的签到 高端大气上档次的 方法

leec

这个视频的laravel是哪个版本呀?

JellyBool

laravel 5.3 和 vuejs 2.0

leec

好的。那我也按照这个版本跟着学。

JellyBool

嗯哼,这个就非常好

beaplat-61f

视频里有用到webpack跟热加载吗,比较关注这个

JellyBool

你应该先看看这个,就不会有疑虑了

https://www.laravist.com/series/vue-js-2-0-series

beaplat-61f

只有第一个视频免费。。打算充值学习,每个系列的视频可以第一个免费,介绍一下教程大概。。

bin912137678

大哥,请问一下安装Homestead运行init.bat他不是要复制三个文件吗?文档上说会自动复制到用户的跟目录下,但是我Windows10系统的用户跟没有.homestead这个文件。但运行init.bat他又说复制成功,那么请问这个目录在哪里昵,我是直接改homestead里面的.yml文件,文件没有同步过去,救解答,已经重装过N次了

JellyBool

你看看这个,一个完整的 windows 10 安装 homestead 的教程:

https://medium.com/@eaimanshoshi/i-am-going-to-write-down-step-by-step-procedure-to-setup-homestead-for-laravel-5-2-17491a423aa#.8ittl5j9y

找个梯子

27631022

到底是nullable 还是 nullabel 你的视频我定格看了 还是nullabel啊

JellyBool

nullable,视频写错了

27631022

[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t
oo long; max key length is 767 bytes (SQL: alter table users add unique `
users_email_unique(email`))
这个max key 767是个啥,

JellyBool

在 Providers 目录下的 AppServiceProvider.php 添加:

use Illuminate\Support\Facades\Schema; // 记得 use 这个

public function boot()
{
    Schema::defaultStringLength(191);
}
妖靥的单纯

大神老师啊,想请教个问题,非父子组件之间怎么通信,用的是vue-cli开发的,真切的希望你能看到的问题,谢谢大神

妖靥的单纯

我刚才了解到我的问题出在那里了,我的情况只能用vuex,不能用$on来解决,之前试了你说的这个没管用,就来问你了,还以为是我写错了,嘿嘿,谢谢你

oyghan

老师,这视频能下载学习吗?

Psychic_role

安装homestead的时候vagrant box add laravel/homestead后让我选择虚拟机,我已经安装好virtualbox,现在又要下载一个870MB的软件,挂vpn速度都不行怎么办呢

C:\Program Files (x86)\HashiCorp\Vagrant>vagrant box add laravel/homestead
==> box: Loading metadata for box 'laravel/homestead'

box: URL: https://atlas.hashicorp.com/laravel/homestead

This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.

1) hyperv
2) parallels
3) virtualbox
4) vmware_desktop

Enter your choice: 3
==> box: Adding box 'laravel/homestead' (v2.0.0) for provider: virtualbox

box: Downloading: https://atlas.hashicorp.com/laravel/boxes/homestead/versions/2.0.0/providers/virtualbox.box

==> box: Box download is resuming from prior download progress

box: Progress: 0% (Rate: 6876/s, Estimated time remaining: 50:33:17))9
JellyBool

homestead 这个 box 就差不多 870MB 这么大。

homestead 就是一个完整的虚拟机啊。

Psychic_role

我试了好几种方式,比如开vpn啊,下载到国外的vps啊,换别的线路转百度云或者迅雷会员,想弄到本地电脑现在花了2个小时了还没搞定,现在在下载别人一个老版本的box,也不清楚是哪个版本。laracast分享的一个1.2G的homestead.box

JellyBool

凌晨两点左右,下载速度超快

Psychic_role

vagrant box add laravel/homestead /workspace/virtualBox.box
这条命令输入完,virtualBox这款软件的界面上看不到我导入的这个虚拟机
virtualBox是5.1.18版本,是软件版本太新识别不了还是别的?
cmd 消息
The box you're attempting to add already exists. Remove it before
adding it again or add it with the --force flag.

也就是我这个实际导入了,只是显示不出来?

JellyBool

vagrant box list
这样就可以看到你的 box 了。

你照着这个文档看一下:https://laravel.com/docs/5.4/homestead#first-steps

上面的操作步骤

Psychic_role

教程没写要在git bash里打开ssh-keygen
ssh-keygen -t rsa -C "you@homestead"
哎呀好气呀,花了一天时间折腾这个了

JellyBool

额,你的是什么操作系统?你对 git 和 ssh 是什么样程度的了解?

Psychic_role

windows10,没用过git和ssh。这次遇到的问题特别多,最后还有个问题是stackoverflow上说新版本vagrant1.9.3有bug要回滚到1.9.0,总算是搞定了

guoht

老师,这视频提供源码吗

JellyBool

没有的,都是想看视频的人跟着视频多敲代码

kisexu

编辑器 用的是什么字体啊?

JellyBool

Operator 貌似是这个

pengjianwei

您好,我想问下laravel怎么配置这个命令,我这边是command not found: laravel

pengjianwei

好的谢谢,原来还要重启一下iterm才可以生效~