如何在 laravel 的一个函数中为同一路线返回多个视图
Posted
技术标签:
【中文标题】如何在 laravel 的一个函数中为同一路线返回多个视图【英文标题】:How to return multiple views in one function in laravel for same route 【发布时间】:2017-09-02 09:41:03 【问题描述】:很难解释我的问题。我希望你能理解它。
对于我的项目,我有一个主布局,其中包含内容的标题和产量。
master.blade.php
@include('partials.header')
<div class="container-fluid main-con">
@yield('content')
@include('partials.footer')
</div>
现在在主要公共路线上,我正在研究一种方法。
Web.php
Route::get('/', [
'uses' => 'ProductContoller@getIndex',
'as' => 'product.mainCats'
]);
ProductContoller.php
class ProductContoller extends Controller
public function getIndex()
$ad_cats = Mainaddtype::orderBy('title')->get();
return view( 'shop.main-categories-page', ['mediacats' => $ad_cats]);
现在我的查询是,'main-categories-page' 在 master 的内容部分产生。但我也想在标题中使用相同的 Mainadtype 数据。所以我想在同一个函数上返回标题视图。如果你理解,请帮忙。
我现在正在尝试的是,
public function getIndex()
$ad_cats = Mainaddtype::orderBy('title')->get();
return view( 'shop.main-categories-page', ['mediacats' => $ad_cats]);
return view( 'partials.header', ['mediacats' => $ad_cats]);
但我知道我们不能以这种方式返回。 提前致谢。
【问题讨论】:
【参考方案1】:函数在获得第一个返回语句时终止,并且在 laravel 中也无法返回两个视图,您唯一可以做的就是在布局模板中包含视图。在模板中添加类别视图的示例。
@if(showStore)
@include('store.category')
@endif
【讨论】:
【参考方案2】:您也可以访问标题中的变量。只需检查变量是否存在,以便在加载其他视图时不会出错。
@if(!empty($mediacats))
// do awesome stuffs with $mediacats
@endif
这样,当您在索引页面上时,您的数据将可用。
如果您希望数据在所有视图中都可用,您可以使用laravel view composer。来自官方文档:
View Composer 是回调或类方法,当 视图被渲染。如果您有想要绑定到视图的数据 每次呈现该视图时,视图编辑器都可以帮助您组织 该逻辑到一个位置
希望对你有帮助。
【讨论】:
非常感谢先生!这样可行!!!!!我非常努力地得到这个。非常感谢你:) 很高兴我能帮上忙。以上是关于如何在 laravel 的一个函数中为同一路线返回多个视图的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 在数据透视表中为克隆字段的一个关系 ID 插入多行
如何在 laravel 查询生成器中为同一列构建多个条件的查询?
如何在 laravel 8 中为 API 返回验证规则和消息作为 JSON