【问题标题】:How in query Eloquent specify condition with relations如何在查询 Eloquent 中使用关系指定条件
【发布时间】:2015-05-26 10:26:50
【问题描述】:

我有 2 张桌子:

文章

标识 |标题 |类别 ID | created_at |更新时间 |

和类别

标识 |姓名 |说明 | created_at |更新时间 |

关系:类别hasMany-> articles和文章belongsTo -> category

如何简单地进行查询:

public functions getArticles ($category) { 

   $articles = Articles::where('category', '=', $category);

}

在文档中存在 ID 为 (http://laravel.com/docs/4.2/eloquent#one-to-many) 的示例,但我想选择文章,知道名称类别。

查询中如何用关系指定条件?

如果存在这样的方法,请帮助我。 谢谢;)

【问题讨论】:

    标签: laravel-4 eloquent


    【解决方案1】:

    您可以使用whereHas 方法。喜欢:

    $articles = Articles::whereHas('category', function($query)use($category){
        $query->where('name', $category->name);
    });
    

    我想应该可以。或者您可以创建一个scope 并加入categories 表,然后通过它进行检查。

    【讨论】:

    • 谢谢)它的工作!我可以问你问题吗?附言Спасибо ;)
    • 我想对多列进行排序。告诉我,也许你知道,我可以在哪里阅读或查看视图中的排序示例?例如,文章按作者或发布日期排序。喜欢这里speedtest.net/results.php
    • 也许这是在 jQuery 的帮助下制作的?
    • 只需像http://somepage.org/search?order[publish_date]=desc&order[id]=asc 一样在您的url 中传递订单,然后使用Input::get('order', []) 获取控制器中的所有订单并迭代它们,将新订单添加到您的查询中,例如foreach($orders as $key=>$order){ $query->orderBy($key, $order); }
    • 谢谢)如果我有一些问题,我可以在这里写吗?
    猜你喜欢
    • 2020-11-24
    • 2013-05-24
    • 1970-01-01
    • 2021-06-10
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 2017-10-24
    • 2022-01-05
    相关资源
    最近更新 更多