Php 未定义变量:Blade Laravel 6.4.0中的类别
我试图用下面的控制器在站点地图页面上显示我的类别 CategoryController.phpPhp 未定义变量:Blade Laravel 6.4.0中的类别,php,laravel,laravel-blade,laravel-6,Php,Laravel,Laravel Blade,Laravel 6,我试图用下面的控制器在站点地图页面上显示我的类别 CategoryController.php 类分类控制器扩展控制器 { 公共函数create() { $categories=类别 ::orderBy('name','desc') ->其中('parent_id',NULL) ->get(); 返回视图('admin.category.create',compact('categories'); } } 以下是我的Blade文件的一部分,我在其中使用了categories变量模板 creat
类分类控制器扩展控制器
{
公共函数create()
{
$categories=类别
::orderBy('name','desc')
->其中('parent_id',NULL)
->get();
返回视图('admin.category.create',compact('categories');
}
}
以下是我的Blade文件的一部分,我在其中使用了categories变量模板
create.blade.php
父类别
@foreach($category作为$category的主要类别)
{{$category->name}
@endforeach
我使用各种方法获取变量并传递,但没有一种不起作用。您有什么建议吗?您有两种选择。
选项A:
您在控制器中命名了集合类别
,并将其传递给视图。要在视图中访问它,需要使用相同的名称引用它
更改此项:
// Your view is looking for a collection titled `main_categories`, which does not exist
@foreach ($main_categories as $category)
<option value="{{ $category->id }}">{{ $category->name }}</option>
@endforeach
return view('admin.category.create', compact('categories'));
为此:
@foreach ($categories as $c)
<option value="{{ $c->id }}">{{ $c->name }}</option>
@endforeach
return view('admin.category.create', [
'main_categories' => $categories
]);
您可以在上阅读更多内容,以便更清楚地了解。我将按如下方式中断您的代码并添加一些详细信息
class CategoriesController extends Controller
{
public function create()
{
$categories = Category
::orderBy('name','desc')
->where('parent_id', NULL)
->get();
// Your are passing variable but I change it as below to be more clear
// return view('admin.category.create', compact('categories'));
//now you are passing the value to the view
return view('admin.category.create', ['categories' => $categories]);
}
}
现在让我们在视图中捕捉它。请注意,现在$categories在视图中可用。如果您传递了['A'=>$categories]
,则视图具有$A
变量,因此您应该调用在控制器中定义的相关变量。
<div class="form-group">
<label for="exampleInputPassword1">Parent Category</label>
<select name="parent_id" class="form-control">
**{{-- In here you should pass $categories --}}**
@foreach ($categories as $category)
<option value="{{ $category->id }}">{{ $category->name }}</option>
@endforeach
</select>
</div>
父类别
**{{--在这里您应该传递$categories--}**
@foreach($categories作为$category)
{{$category->name}
@endforeach
您没有试图在视图的该部分中使用$categories
,$main\u categories
应该是$categories