0

我想向用户展示大多数帖子,这就是我正在做的事情。我在我的 AppServiceProvider.php 中尝试这个:

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); 
    });

在我的侧面视图中:

@foreach($m as $user)

   {{ $user->name }}

@endforeach

但我仍然有这个错误:未定义的变量:m(查看:C:\wamp\www\qq\resources\views\questions\side.blade.php)(查看:C:\wamp\www\qq\resources\views \问题\side.blade.php)

4

1 回答 1

1

您以错误的方式共享变量,因为“with”函数需要一个数据数组,此外,您共享的变量名称错误。

变量必须像这样传递:

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

或使用compact()方法,您必须更改$users$m

$view->with(compact('m')); //Or => $view->with(['m' => $m])
于 2017-08-23T11:03:28.223 回答