"未定义的变量:用户"当试图使用@foreach时

时间:2016-09-16 15:11:40

标签: php html laravel

我试图在laravel中创建foreach循环以列出所有用户,但是当我使用laravel建议的代码时,我收到此错误:

Undefined variable: users (View: /home/vagrant/Code/SimFly/resources/views/profile.blade.php)

导致错误的代码是:

@foreach ($users as $user)
<p>This is user {{ $user->id }}</p>
@endforeach

请有人帮助我。

3 个答案:

答案 0 :(得分:3)

要在视图中使用users变量,您需要先从控制器传递它:

$users = User::all();
return view('profile', compact('users'));

答案 1 :(得分:0)

在循环之前检查数组/变量的状态(例如,isset,count)是一种很好的做法,以保护任何不可预见的错误。

答案 2 :(得分:0)

根据上面的建议,问题是视图没有被传递给变量。

要在刀片模板中捕获此内容,请使用类似@forelse而非@foreach

的内容

ProfileController可

$users = User::all();
return view('profile', [
    'users' => $users
]);

轮廓刀片

@forelse
    <p>This is user {{ $user->id }}</p>
@empty
    <p>There are no users</p>
@endforelse