2015-09-25 3 views
2

Я пытаюсь получить строки из таблицы пользователей и присоединить их к таблице статей, где articles.user_id = users.id и articles.view являются макс.Laravel 5 eloquent join field максимальное значение

public function scopeMostViewedArticle($query) 
{ 
    $query->leftjoin('articles as a', function ($join) { 

      $join->on('a.user_id','=','users.id') 
        ->where('a.publish_date', '<',date('Y-m-d H:m')) 
        ->where('a.view','=',?); 


      }) 
     ->groupby('users.id') 
     ->orderby('users.id') 
     ->select('users.*','a.title as article_title','a.image as article_image'); 


} 

У меня проблема с '-> где (' a.view ',' = ',?);' часть. Я ценю вашу помощь! :)

+0

Я не могу видеть, что происходит в ИНЕКЕ, но в самом запросе, где вы выбираете значение Max SELECT MAX (имя_столбца) FROM table_name; – patricio

ответ

0
public function scopeMostViewedArticle($query) 
{ 
    $query->leftjoin('articles as a', function ($join) { 

      $join->on('a.user_id','=','users.id') 
        ->where('a.publish_date', '<',date('Y-m-d H:m')) 
        ->max('a.view'); 
      }) 
     ->groupby('users.id') 
     ->orderby('users.id') 
     ->select('users.*','a.title as article_title','a.image as article_image'); 

} 

подробнее вы можете найти в http://laravel.com/docs/5.1/queries

+0

Благодарим за отзыв. Я попробовал это раньше, но он говорит: «Вызов неопределенного метода Illuminate \ Database \ Query \ JoinClause :: max()' – SomethingElse

Смежные вопросы