关于 findOrFail 的一个小问题

比如我文章表加了个字段(is_active)表示是否可在前台显示,如果是0的话让前台列表不显示。

但是在文章详情页使用 findOrFail 来查询文章的话,即使 is_active0,还是会被显示出来,而不是返回找不到这样的信息。

我试着在 findOrFail 前面加上 ->where('is_active', '=', 1) 来解决,但是 findOrFail 函数前面好像不可以加这样的条件。

有什么好的解决办法呢?

openwrtmail

findOrFail的是你从数据库查询,没有这条记录才抛出错误。而不是你查询的结果为0抛出错误。

JellyBool
Article::where('id',$id)->where('is_active', '=', 1)->first();

这样试试?