【问题标题】:Filtering results by model in Laravel Eloquent ORM在 Laravel Eloquent ORM 中按模型过滤结果
【发布时间】:2014-04-08 10:57:14
【问题描述】:

我正在使用 Laravel 4 构建简单的论坛。我需要计算当前用户在给定主题上发表的帖子。

到目前为止我所拥有的:

$topic = Topic::find(1);
$user = Auth::user();
echo $user->posts()->whereTopicId($topic->id);

这很好用,但我对直接处理 ID 不满意。是否可以使用关系以简洁的方式做到这一点?

我正在寻找这样的东西:

echo $user->posts()->whereTopic($topic);

这不起作用。

【问题讨论】:

    标签: orm laravel eloquent


    【解决方案1】:

    您可以通过在您的Post 模型中使用scopes 来实现$user->posts()->whereTopic($topic)

    public function scopeTopic($query, $topic)
    {
        return $query->where('topic_id', '=', $topic->id);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-13
      • 2015-04-04
      • 1970-01-01
      • 2021-04-02
      • 2019-05-21
      • 1970-01-01
      相关资源
      最近更新 更多