使用资源丰富的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中的错误?
答案 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}}会在每次迭代时返回一个模型,因此您会看到错误!