问题描述
所以,我想知道在这种情况下,我在 index.blade 中有一个需要类别数据的导航栏(作为具有许多扩展子视图的模板刀片)。由于控制器不会调用 index.blade,我可以从哪里获取数据?
我也有扩展 index.blade 的 homepage.blade,我知道我可以将类别数据从 homepage.blade 传递到 index.blade,但我认为这不是正确的事情,因为每次你调用另一个扩展的刀片时index.blade,你必须从数据库中获取类别数据。
这是我的代码:
index.blade
<div class="container">
@include('layouts.navbar')
@auth
<h2 class="greetings mt-4">Welcome,@if (Auth::user()->role == 'Admin')
Admin
@endif
{{Auth::user()->name}}</h2>
@endauth
<div class="container">
@yield('content')
</div>
</div>
导航栏.blade
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
@foreach ($categories as $category)
<a href="{{ route('categories.show',['category' => $category->id]) }}" class="dropdown-
item">{{ $category->name }}</a>
@endforeach
</div>
主页.blade
@extends('index')
@section('content')
<div class="row mb-4">
@foreach ($articles as $article)
<div class="col-md-4 mt-4">
<div class="card" style="width: 17rem;">
<div class="card-body">
<h4 class="card-title">{{ $article->title }}</h4>
<p class="card-text"></p>
<p>Category : <a href="">{{ ($article->category)->name }}</a></p>
</div>
</div>
</div>
@endforeach
</div>
@endsection
家庭控制器(调用 homepage.blade)
public function index()
{
$articles = article::all();
$categories = category::all(); //<- I have to get and this everytime I call another controller to another blade
return view('layouts.homepage',compact('articles','categories'));
}
如果我这样做,那么每次我想调用另一个扩展 index.blade 的刀片视图时,我都必须获取类别数据。但我不认为这是正确的方法。对不起,如果太长,我很难解释这个问题,谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)