我试图在Laravel应用中的一个控制器中循环遍历一个数组,然后将其传递给视图。
当前抛出错误“试图获取非对象的属性” ,它告诉我数组返回为空?
在下面的控制器中,我试图将一个数组默认设置为空,然后将值传递给该数组,然后再将其传递给视图,就像这样:
收件人控制器
public function edit($id)
{
$recipe = Recipe::find($id);
$tags = Tag::all();
$tags2 = array();
foreach ($tags as $tag){
$tags2[$tag->id] = $tag->name;
}
return view('recipes.edit')->with('recipe', $recipe)->with('tags', $tags2);
}
我的观点
<fieldset>
<small class="errorMessage"></small>
<label for="tags">Tags</label>
<select name="tags[]" id="tagsList" class="select2-multi" multiple="multiple">
@foreach($tags as $tag)
<option value="{{$tag->id}}">{{$tag->name}}</option>
@endforeach
</select>
</fieldset>
这样做的目的是更新配方上的现有标签(我的配方相当于此应用程序上的帖子)。存储和显示标签的效果很好,但是编辑是我遇到麻烦的地方。如果您看到我看不到的东西,请告诉我。
答案 0 :(得分:3)
使用此代码
public function edit($id)
{
$recipe = Recipe::find($id);
$tags = Tag::pluck('name', 'id');
return view('recipes.edit')->with('recipe', $recipe)->with('tags', $tags);
}
可见
@foreach($tags as $id => $name)
<option value="{{$id}}">{{$name}}</option>
@endforeach