在Laravel 5中创建带有嵌套类别的选择菜单


Create select menu with nested categories in Laravel 5

从我之前问的这个问题中得到了帮助在Laravel 5中创建一个嵌套的类别列表能够在树状结构中循环并显示嵌套的类别。现在我希望能够编辑每个类别,所以我创建了一个编辑链接,然后将类别id传递给该链接,然后在我的控制器中使用该链接来显示类别表中的特定类别。但是我总是得到这个错误

ErrorException in 775837465f5ab64876c1dc1677878595 line 46: Trying to get property of non-object (View: /resources/views/backend/categories/edit.blade.php)

这是我当前的控制器:

public function edit($id)
{
    $categories   = Category::find($id);
    //print_r($categories);
    return view('backend.categories.edit')->with('categories', $categories); 
}

我在视图文件中是这样实现的:

<select name="parent_id" class="form-control">
                        <option value="" selected disabled style="display:none">choose parent category</option>
                        @foreach ($categories as $category)
                            <option value="{{ $category->id }}" placeholder="choose parent category">{{ $child->name }}</option>
                        @endforeach
                    </select>

在没有定义child的情况下调用了$child->name。如果您想要访问它们的属性,则需要通过$category->children进行嵌套循环。在有$child的地方,需要加上$category

@foreach ($categories as $category)
    <option value="{{ $category->id }}" placeholder="choose parent category">{{ $category->name }}</option>
@endforeach