尝试使用laravel5.2开发新项目

Laravel看着就屌


感觉上就和thinkphp不是一个档次

但是遇到的第一个坑就是镜像问题,composer生成项目时从官方镜像download慢成狗。 所以还是更换镜像靠谱:

    composer config -g repo.packagist composer https://packagist.phpcomposer.com

另外还有几个靠谱的镜像:

  • http://pkg.phpcomposer.com/
  • https://toran.reimu.io/
  • http://packagist.jp/
  • http://composer-proxy.jp/
  • http://packagist.cn/
  • http://comproxy.cn/

还是推荐

    composer create-project laravel/laravel --prefer-dist blog

这种方式来安装比较好。

关于ORM查询数据时的问题

  • 最初天真的以为像ThinkPHP 一样直接通过get(5)可查到5条记录, 后来发现不行,而是使用take(5)来实现。

  • 另外一个问题,比如我只想取一条记录里的指定几个字段, 在官方文档里面第一眼找到是的用lists或者pluck 但生成的是键值对,而且最多只有两个,不符合我要求。 最后发现是用select('xx','xxx')

帮同学的windows下配置环境的时候也发现了问题

  • compser_setup.exe安装时,不设置代理无法安装。

  • 安装好后使用 composer install 提醒xdebug相关错误, 只要将php.ini中的Zend_extension前加上;注释即可。

  • 开启服务之前,先复制.env.example复制为.env并进行配置。

关于Auth验证的问题

  • 如果我用的不是默认创建的users表,而是自定义了一张表,那么需要配置下。 首先在Config/auth.php中修改model指向的表。另外对应的Model中继承的类需要和原User model 一致,继承自Illuminate\Foundation\Auth\User。 中间件auth验证失败的跳转是在Middleware/Authenticate.php中修改。 还有一个坑,发现验证通过之后,session并没有被记住,检查Auth::check()确实true的,后来了解到,是我自定义的表主键的关系。验证时认的是id,将表自增主键改为id即正常。(如果不方便改表子段,可以去vendor/laravel/framework/src/Illuminate/Auth/Session中查看相关源码)

部署过程中遇到的问题

Question: 注册时邮件发送错误 Connection could not be established with host smtp.mxhichina.com [Permission denied #13] Solution: 命令行输入 setsebool -P httpd_can_network_connect on Why:需要允许http网络访问


Question: IE注册时显示Token Mismatch错误 Token Mismatch Exception... Solution: 修改服务器当前时间为中国北京时间 date -s xx:xx:xx Why:由于服务器在国外会有时差,IE貌似对token有时效性的认证机制,所以时间差一大,就会报错