Laravel侧边栏解析变量时出错
Laravel error when parsing variables in the side bar
能否将数据解析为 laravel 布局?当我想实现基于数据库的动态侧边栏时出现错误。这是我的代码
控制器
public function side_kategori()
{
$kategori = Kategori::all();
return view('admin/layouts/sidebar', ['kategori'=>$kategori]);
}
型号
protected $table = 'tb_kategori';
protected $primaryKey = 'id_kategori';
查看
/*location ('admin/layouts/sidebar.blade.php')*/
<ul class="children collapse" id="sub-item-1">
@foreach($kategori as $kat)
<li>
<a href="/kategori/detil_katgori/{{$kat->id_kategori}}">{{$kat->nama_kategori}}</a>
</li>
@endforeach
<li>
<a href="#"><i class="fa fa-edit" style="margin-right: 4px"></i>Add</a>
</li>
</ul>
</li>
那是我的 sidebar.blade.php 文件,这是我的应用程序布局(包含所有组件,如页眉、边栏和页脚)
<!DOCTYPE html>
<html>
<head>
<title>E-Upacara</title>
</head>
<body>
@include('admin/layouts.head')
@include('admin/layouts.navigator')
/*I think the error starts here*/
@include('admin/layouts.sidebar')
<div class="col-sm-9 col-sm-offset-3 col-lg-10 col-lg-offset-2 main">
@yield('konten')
</div>
@include('admin/layouts.footer')
</body>
</html>
错误
Undefined variable: kategori (View: C:\xampp\htdocs\si_laravel\resources\views\admin\layouts\sidebar.blade.php)
我还在想,是不是我的想法执行错了?
您可以将变量传递到侧边栏布局中。首先,在扩展侧边栏布局的子视图中,return kategori
变量与控制器像往常一样。然后你可以用 @extends('admin.layouts.sidebar', ['kategori' => $kategori])
传递变量
如果您希望 $kategori
在 ALL 视图之间共享,则可以执行以下操作:
转到App\Providers\AppServiceProvider.php
,在public function boot()
内添加
$kategori = Kategori::all();
view()->share('kategori', $kategori);
这将在所有视图中共享您的类别。
确保包含顶部带有 use App\Kategori;
的模型。
注意:从性能的角度来看,这并不理想,因为在每个视图请求中,您都在数据库中查询 $kategori
。你真的应该看看 View composers 来实现这个:
https://laravel.com/docs/7.x/views#view-composers
但是,如果 $kategori
很小(可能检索 20 个左右的类别),则不会有太大的影响。
能否将数据解析为 laravel 布局?当我想实现基于数据库的动态侧边栏时出现错误。这是我的代码
控制器
public function side_kategori()
{
$kategori = Kategori::all();
return view('admin/layouts/sidebar', ['kategori'=>$kategori]);
}
型号
protected $table = 'tb_kategori';
protected $primaryKey = 'id_kategori';
查看
/*location ('admin/layouts/sidebar.blade.php')*/
<ul class="children collapse" id="sub-item-1">
@foreach($kategori as $kat)
<li>
<a href="/kategori/detil_katgori/{{$kat->id_kategori}}">{{$kat->nama_kategori}}</a>
</li>
@endforeach
<li>
<a href="#"><i class="fa fa-edit" style="margin-right: 4px"></i>Add</a>
</li>
</ul>
</li>
那是我的 sidebar.blade.php 文件,这是我的应用程序布局(包含所有组件,如页眉、边栏和页脚)
<!DOCTYPE html>
<html>
<head>
<title>E-Upacara</title>
</head>
<body>
@include('admin/layouts.head')
@include('admin/layouts.navigator')
/*I think the error starts here*/
@include('admin/layouts.sidebar')
<div class="col-sm-9 col-sm-offset-3 col-lg-10 col-lg-offset-2 main">
@yield('konten')
</div>
@include('admin/layouts.footer')
</body>
</html>
错误
Undefined variable: kategori (View: C:\xampp\htdocs\si_laravel\resources\views\admin\layouts\sidebar.blade.php)
我还在想,是不是我的想法执行错了?
您可以将变量传递到侧边栏布局中。首先,在扩展侧边栏布局的子视图中,return kategori
变量与控制器像往常一样。然后你可以用 @extends('admin.layouts.sidebar', ['kategori' => $kategori])
如果您希望 $kategori
在 ALL 视图之间共享,则可以执行以下操作:
转到App\Providers\AppServiceProvider.php
,在public function boot()
内添加
$kategori = Kategori::all();
view()->share('kategori', $kategori);
这将在所有视图中共享您的类别。
确保包含顶部带有 use App\Kategori;
的模型。
注意:从性能的角度来看,这并不理想,因为在每个视图请求中,您都在数据库中查询 $kategori
。你真的应该看看 View composers 来实现这个:
https://laravel.com/docs/7.x/views#view-composers
但是,如果 $kategori
很小(可能检索 20 个左右的类别),则不会有太大的影响。