gpt4 book ai didi

php - 查询关系 Eloquent

转载 作者:IT王子 更新时间:2023-10-29 00:06:02 24 4
gpt4 key购买 nike

我有News模型,和 News有很多评论,所以我在 News 中做了这个型号:

public function comments(){
$this->hasMany('Comment', 'news_id');
}

但我也有字段trashedcomments表,我只想选择未删除的评论。所以trashed <> 1 .所以我想知道有没有办法做这样的事情:

$news = News::find(123);
$news->comments->where('trashed', '<>', 1); //some sort of pseudo-code

有没有办法使用上面的方法,或者我应该写这样的东西:

$comments = Comment::where('trashed', '<>', 1)
->where('news_id', '=', $news->id)
->get();

最佳答案

这些中的任何一个都适合你,选择你最喜欢的一个:

  1. 急切加载。

    $comments = News::find(123)->with(['comments' => function ($query) {
    $query->where('trashed', '<>', 1);
    }])->get();

    您可以通过use($param) 方法将参数注入(inject)查询函数,这样您就可以在运行时使用动态查询值。

  2. 延迟加载

    $news = News::find(123);
    $comments = $news->comments()->where('trashed', '<>', 1)->get();

不过,我忍不住注意到,您可能正在尝试做的是处理软删除,并且 Laravel 具有内置功能来帮助您:http://laravel.com/docs/eloquent#soft-deleting

关于php - 查询关系 Eloquent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20036269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com