2016-09-21 1 views
0

Я хочу, чтобы показать пользователь самым поста и вот что я буду делать? .. Я стараюсь это в моем AppServiceProvider.php:Показать пользователь с большинством сообщений в Laravel 5

view()->composer('questions.side2', function($view){ 
     $m = User::leftJoin('questions','users.id','=','questions.user_id') 
      ->selectRaw('‌​us‌​er‌s​.*, count(questions.user_id) AS total') 
      ->groupBy('users.id') 
      ->orderBy('total','DESC') 
      ->skip(0) 
      ->take(5) 
      ->get(); 

     $view->with('m', $users); 
    }); 

In My Вид сбоку :

@foreach($m as $user) 

    {{ $user->name }} 

@endforeach 

, но я до сих пор есть эта ошибка: Undefined переменной: м (Вид: C: \ WAMP \ WWW \ \ кв.кв ресурсы \ вид \ вопросы \ side.blade.php) (Вид: C: \ wamp \ www \ qq \ resources \ views \ questions \ side.blade.php)

+0

ли проверить вас, если эта функция действительно называется? Если вы поместите 'dd ($ m);' перед '$ view-> с ('m', $ user),' что вы получаете? – Laerte

+0

view() -> composer ('questions.side2', function ($ view) { \t \t \t $ m = Пользователь :: leftJoin ('questions', 'users.id', '=', 'questions.user_id ') \t \t \t \t -> selectRaw (' нас ERS *, граф (questions.user_id.) AS Всего ') \t \t \t \t -> группеПо (' users.id ') \t \t \t \t -> orderBy ('total', 'DESC') \t \t \t \t -> skip (0) \t \t \t \t -> взять (5) \t \t \t \t -> получить(); \t \t dd ($ m); $ view-> с ('m', $ users); }); Но такое же сообщение об ошибке .. –

+0

Что происходит, так это то, что эта функция никогда не запускается. У вас есть метод 'show' в Controller? Что в нем? – Laerte

ответ

0

Вы используете переменные неправильно, потому что функция «с» ожидает массив данных.

Переменные должны проходить так:

$view->with([ 
    'm' => $users 
]); 

Или используя метод компактный(), но вы должны изменить $ пользователей до $ м

$view->with(compact('m')); // => $view->with(['m' => $m]) 
Смежные вопросы