【问题标题】:Laravel - Package extend layout from parent projectLaravel - 包从父项目扩展布局
【发布时间】:2020-01-29 06:33:47
【问题描述】:

我最近制作了一个包含默认路由、控制器和视图的包。我将包上传到 packagist 并使用composer require package/name 要求它,一切正常。但是我希望包中的视图使用在父项目中设置的布局。

主要项目

我的主项目在resources/views/layouts/layouts/backend.blade.php 中有一个布局文件,我希望该包扩展该特定布局。这可能吗?

控制器

 public function index()
 {
   return view('visitors::home');
 }

路线

Route::get('dashboard/visitors', '\Rainieren\Visitors\Http\Controllers\VisitorController@index')->name('visitors');

查看


<h1>Visitors page</h1>

我尝试过@extend('layouts.layouts.backend'),但不幸的是这不起作用。我该如何解决这个问题?

【问题讨论】:

    标签: php laravel package


    【解决方案1】:

    编辑

    您可以看看侧面的发布视图。
    发布后,它们将位于“resources/views/vendor/packageName”中。
    您的视图将可以访问“resources/views”文件夹。

    来自 (https://laravel.com/docs/6.x/packages#views) 的示例

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        $this->loadViewsFrom(__DIR__.'/path/to/views', 'courier');
    
        $this->publishes([
            __DIR__.'/path/to/views' => resource_path('views/vendor/courier'),
        ]);
    }
    
    php artisan vendor:publish
    

    【讨论】:

    • 感谢您的回复!然而,这与我想要实现的目标相反。我希望包从父级扩展布局。不是包中的父级。
    • 好吧,我的误解。您需要发布包的视图。我已经编辑了答案
    猜你喜欢
    • 2023-03-28
    • 2014-12-07
    • 2023-03-29
    • 2021-02-22
    • 2015-02-26
    • 2017-10-24
    • 1970-01-01
    • 2016-02-24
    • 2013-08-06
    相关资源
    最近更新 更多