【发布时间】:2023-03-13 05:17:01
【问题描述】:
我正在尝试遍历 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>
这样做的目的是更新食谱上的现有标签(我的食谱相当于此应用程序上的帖子)。存储和显示标签工作正常,但编辑是我遇到问题的地方。如果您看到我没有看到的内容,请告诉我。
【问题讨论】:
-
由于您的
$tags2是array,因此您无法将其属性作为对象表示法访问。您需要在刀片文件中使用数组表示法。<option value="{{$tag['id']}}">{{$tag['name']}}</option>