【问题标题】:How to return multiple views in one function in laravel for same route如何在 laravel 的一个函数中为同一路线返回多个视图
【发布时间】: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]);
    }

但我知道我们不能以这种方式返回。 提前致谢。

【问题讨论】:

    标签: php laravel blade laravel-routing


    【解决方案1】:

    函数在获得第一个返回语句时终止,并且在 laravel 中也无法返回两个视图,您唯一可以做的就是在布局模板中包含视图。在模板中添加类别视图的示例。

    @if(showStore)
    @include('store.category')
    @endif
    

    【讨论】:

      【解决方案2】:

      您也可以访问标题中的变量。只需检查变量是否存在,以便在加载其他视图时不会出错。

      @if(!empty($mediacats))
         // do awesome stuffs with $mediacats
      @endif
      

      这样,当您在索引页面上时,您的数据将可用。

      如果您希望数据在所有视图中都可用,您可以使用laravel view composer。来自官方文档:

      View Composer 是回调或类方法,当 视图被渲染。如果您有想要绑定到视图的数据 每次呈现该视图时,视图编辑器都可以帮助您组织 该逻辑到一个位置

      希望对你有帮助。

      【讨论】:

      • 非常感谢先生!这样可行!!!!!我非常努力地得到这个。非常感谢你:)
      • 很高兴我能帮上忙。
      猜你喜欢
      • 2018-12-17
      • 2016-07-03
      • 1970-01-01
      • 1970-01-01
      • 2021-05-07
      • 2014-11-23
      • 2018-01-23
      • 2019-12-19
      • 1970-01-01
      相关资源
      最近更新 更多