Laravel开发碰到的坑

获取 Redis 对象

最开始是这么脑残的写

1
2
$redis = cache()->getRedis();
$redis->hSet($hash, $field, $now);

然后发现可以这么写

1
Redis::hSet($hash, $field, $now);

然后会发现如果导错包的话会抛一个异常 Redis 没有静态方法hSet

其实只需要将包 \Redis 修改为 use Illuminate\Support\Facades\Redis; 即可

Eloquent Builder 中的 find 方法

1
User:find(1)->where('status',1)->first()

发现 find方法不生效

查阅源码之后才发现 find 返回一个 Eloquent 实例或者 Eloquent 实例数组,所以其后的查询条件都不会和前面的查询发生联系,Eloquent 能够用链式查询的魅力在于每个函数都是返回的 $this 也就是 Builder 对象。

坚持原创技术分享,您的支持将鼓励我继续创作!