路线为Route::resource('/admin/post', 'postController');
代码是
public function index()
{
$s = Singer::where('id','<',5)->get()->name;
return view("admin.new-post", ['s'=>$s]);
}
视图是
<select class="form-control select2 select2-hidden-accessible" multiple="" data-placeholder="Select a State" style="width: 100%;" tabindex="-1" aria-hidden="true">
<?php foreach ($s as $ss){
echo '<option>'. $ss .'</option>';
}?>
</select>
我想在select中列出数据库中所有歌手的名字。问题是,当我在查询中使用first()
而不是get()
获取单个值时,它会正确地返回单个值,而不会出现任何错误。但是当我使用get()
并在视图中使用foreach
循环来获取所有歌手时,它会给出此错误。 Undefined property: Illuminate\Database\Eloquent\Collection::$name
。我已多次查看代码,但无法理解错误是什么。虽然获得一个名字没有问题..请给我一些解决方案。
答案 0 :(得分:1)
控制器代码
public function index()
{
$s = Singer::where('id','<',5)->get();
return view("admin.new-post", ['s'=>$s]);
}
查看代码
<select class="form-control select2 select2-hidden-accessible" multiple="" data-placeholder="Select a State" style="width: 100%;" tabindex="-1" aria-hidden="true">
<?php foreach ($s as $ss){
echo '<option>'. $ss->name .'</option>';
}?>
</select>
当你使用first()时,你得到一个结果,当你使用get()时,即使你搜索一个用户,你也会获得collection个结果。