加入表格后,从数据库中选择特定的随机行数 - Laravel 5.1

时间:2016-03-09 09:39:02

标签: mysql laravel eloquent

您好我的数据库结构如下:

  

表:文章

id | category_id(fk) | title | description | image
  

表:类别

id | name
  

表:domain_category

id | domain_id(fk) | category_id(fk)

现在来自上面的表格。我只需要表文章 8个随机行,其中 domain_id = $ dynamic_domain_id

我尝试的内容如下:

$randomArticles = Article::select("articles.*")
                        ->join('categories', 'categories.id', '=', 'articles.category_id')
                        ->join('domain_category', 'domain_category.category_id', 'categories.id')
                        ->where('domain_category.domain_id', $domain->lander_domain_id)
                        ->orderBy(DB::raw('RAND()'))->take(8)->get();

但是我收到了一个错误而没有得到正确的结果。提前谢谢。

1 个答案:

答案 0 :(得分:2)

向我跳出的唯一语法错误是您在第二个'='函数调用中缺少join()参数。请尝试使用此查询:

$randomArticles = Article::select("articles.*")
                        ->join('categories', 'categories.id', '=', 'articles.category_id')
                        ->join('domain_category', 'domain_category.category_id', '=', 'categories.id')
                        ->where('domain_category.domain_id', $domain->lander_domain_id)
                        ->orderBy(DB::raw('RAND()'))->take(8)->get();