Pass Paremeter to Middleware 传递变量

我只能说这种方式实在太神奇,居然是用冒号连接。

 

修修补补

看着 Phpstorm 里面各种花花绿绿的提示,深感不爽,决定暂时进入修补阶段。 其实代码能运行,只是有些东西强大如 phpstorm 都解析不出来,这样可能会降低运行效率吧,还是修正一下比较好。 顺带简化一些 template 中的数据调用逻辑,现在感觉一些前台调用写得太复杂了。 还有一个严重的问题是载入的 js 文件实在太多,需要做整合。什么 gulp,什么 node.js,还不太会用,伤感。 另外会给尝试 Sidebar 加入一个新功能,直接在前台控制权限,而不是在页面中写死(hard coding)。 其实要做的事情还真的挺多。

Laravel Path 路径判断

strstr 函数还有个坑,如果第二个参数 $item->url 是 empty 会报错,NULL 不会报错,Laravel 中 NULL 跟 empty 的坑参见这个帖子。

吐槽一下 laravel

表单为空的时候,居然不能解析为 NULL,而是 update 成 empty 字段,这实在是无语。 需要在 model 中进行修正:

SoftDelete 用起来也不方便,需要现在 Model 中声明:

用 where() 方法,返回 array 要加 get(),find() 就不用,什么时候要加 get() 什么时候不用我现在还是分不太清。

PHP 历遍 Json 子节点的方法

对 Json 是又爱又恨,不太会用 PHP 解析,研究了半天,终于找到点门道。

这种做法必须知道子节点的名称,不然就只能逐个 node 去历遍了。

用户模块基本完成

感谢 laracast,学会了 many to many relationship。 INSPINIA 模板果然给力,有很多 JQuery Plugin 可以直接拿来用,要是能多提供点 Document 就好了,目前还是主要靠猜。 剩下一些小 bug,比方 Administrator 不能需改自己的用户组的限定,目前好像还是不太行,会导致循环 redirect。 还有就是想一下,怎样可以在不泄露 group_id 的情况下改用户组,这样会安全一点。感觉可以实现,就是有点麻烦。

让 Phpstorm 完整支持 Laravel 并自动补全函数

这里用到了一个 IDE helper,我暂时还不是非常了解 PhpDoc 的原理,不过依葫芦画瓢吧。 Laravel 5 IDE Helper Generator 根据 Readme 安装即可,这样 routes.php 就不会报错了。 不过还有一个问题,在写 migration 的时候,->unsigned()->index() 不能自动补全,还会有函数报错。在 stackoverflow 找到了答案: Calling $table->integer(‘user_id’) returns a new instance of Illuminate\Support\Fluent. But the Fluent class does not provide an unique() method. Instead it’s using PHP magic method __call. That’s why PHPStorm is complaining. 然后解决办法是在 IDE Helper 的末尾增加以下几行: … Read more

完成用户密码修改

原来 User 模块做起来并没有那么容易。 首先验证是否登陆,Laravel 的 middleware 真的很强大:

然后设定好 Validator,用户要先输入原密码,然后输入两次新密码:

接着建立一个 function 去处理用户密码,这里用到了 hash facade,新密码直接 bcrypt:

这里的 with 会建立起一个一次性的 session,我新建了一个 success.blade.php 去跟它对接:

这样成功更改密码之后就会有一个更改成功的提示。 如果 old password 对不上的话,则是出现错误提示框。

注册时默认用户组为 1 组

这周末如果不是很懒的话,应该可以把 user profile 模块初步做起来。

目前 group_id 显然不能放在 mass assign 中,于是采取了先新建记录,再 update 用户组权限的办法。

重新整理思路

为了提高开发效率,我决定不再闭门造车,直接基于已有的轮子做二次开发。 Template:Inspinia 安装 Laravel:

Require package:

修改配置:

Git: