【问题标题】:Return keyword in query callback在查询回调中返回关键字
【发布时间】:2019-03-25 19:59:56
【问题描述】:

在laravel中使用whereHas时是否需要写return关键字。

例如。 return $query->where('status', 1);

$posts = App\Post::whereHas('comments', function ($query) {
    $query->whereHas('content', function ($query){
       $query->where('status', 1);
    });
})->get();

我们需要在每个查询回调中写返回吗?

【问题讨论】:

    标签: laravel eloquent


    【解决方案1】:

    不,您正在修改通过调用 $query->where('status', 1); 传递给闭包的查询生成器实例。由于对象是通过引用传递的并且where() 改变了这个实例,所以不需要返回任何东西。

    【讨论】:

    【解决方案2】:

    没有必要。您也可以将 whereHas 与嵌套关系一起使用。 示例:

    $posts = App\Post::whereHas('comments.content', function ($query) {
        $query->where('status', 1);
    })->get();
    

    【讨论】:

      【解决方案3】:

      没有。因为您在每个函数中都有相同的对象(并对其进行修改)。无需返回。

      【讨论】:

        猜你喜欢
        • 2017-06-05
        • 2013-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多