【问题标题】:IN statement in EloquentEloquent 中的 IN 语句
【发布时间】:2014-09-24 00:43:44
【问题描述】:

我正在尝试在 Eloquent 查询中执行 IN 语句。我试过这个:

$id = urldecode($id);

$news = News::whereHas('newsCategories', function($q) use($id)
{
    $q->where('category_id', 'IN', '('.$id.')')->orderBy('created_at', 'desc');
})->get();

但我得到空结果。

当我将IN 切换为= 并传递一个数字而不是数组时,我会得到结果。我是不是做错了什么?

所以这行得通:

$id = 2;

$news = News::whereHas('newsCategories', function($q) use($id)
{
    $q->where('category_id', '=', $id)->orderBy('created_at', 'desc');
})->get();

【问题讨论】:

    标签: mysql laravel eloquent


    【解决方案1】:

    您希望 whereIn 带有您的 id 数组进行检查...

    $news = News::whereHas('newsCategories', function($q) use($array_of_ids)
    {
        $q->whereIn('category_id', $array_of_ids)
          ->orderBy('created_at', 'desc');
    })->get();
    

    只要确保你传入的东西是真正的数组:)

    【讨论】:

      猜你喜欢
      • 2016-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-06
      • 1970-01-01
      • 2014-12-31
      • 1970-01-01
      • 2021-12-23
      相关资源
      最近更新 更多