Laravel 4 @foreach

时间:2013-12-12 03:07:49

标签: laravel-4

使用资源丰富的UsersController和$ users。

似乎当$ users只有1个条目时,@ foreach循环不起作用?

在UsersController中:

public function show($id) {
   $users = User::find($id);
   return View::make('users')->with('users',$users);
}

如果我只使用“return $ users”,则$ users的值为:

{"id":"1","username":"user1"}

在users.blade.php中:

@foreach($users as $user)
   {{$user->username}}
@endforeach

当有2个或更多用户工作时,但是使用URI app.com/users/1,它只返回一个(见上文),新错误是:

  

“试图获取非对象的属性”

为什么这是user.blade.php中的错误?

1 个答案:

答案 0 :(得分:2)

这更像是User::find($id)正在返回的问题..

Query builder methods return an instance of the Collection类,表示模型的集合。例如,这里我们得到一个包含一个Model的Collection。

$users = User::where('id', '=', $id)->get();

然而find()方法returns a single Model

$users = User::find($id);

单个Model不能以与Collection相同的方式进行迭代,{{1}}会在每次迭代时返回一个模型,因此您会看到错误!