【问题标题】:Laravel5 package viewLaravel5 包视图
【发布时间】:2014-12-04 12:32:21
【问题描述】:

我已经创建了包“za-web/tags”

composer.json:

{
    "name": "za-web/tags",
    "description": "",
    "authors": [
        {
            "name": "Aleksandr Zamiatin",
            "email": "cawa123@mail.ru"
        }
    ],
    "require": {
        "php": ">=5.4.0",
        "illuminate/support": "5.0.*"
    },
    "autoload": {
        "classmap": [
            "src/views"
        ],
        "psr-4": {
            "ZaWeb\\Tags\\": "src/ZaWeb/Tags"
        }
    },
    "minimum-stability": "dev"
}

并查看我正在尝试做的标签

 return View::make('tags::cloud', ['data' => $data])->render();

我得到了错误:没有为 [tags] 定义提示路径。

仅当我在 register() 方法中添加到 TagsServiceProvider 时才有效:

 View::addNamespace('tags', __DIR__ . '/../../views');

【问题讨论】:

    标签: php laravel package laravel-5


    【解决方案1】:

    您的解决方案有效,但正如 Laravel 5 documentation 中关于包开发的说明,您应该将其添加到您的 ServiceProvider 的引导方法中:

    public function boot()
    {
        $this->loadViewsFrom(__DIR__.'/path/to/views', 'courier');
    }
    

    而不是

     View::addNamespace('tags', __DIR__ . '/../../views');
    

    如果你想发布你的包视图,别忘了使用 publishes 方法:

    public function boot()
    {
        $this->loadViewsFrom(__DIR__.'/path/to/views', 'courier');
    
        $this->publishes([
            __DIR__.'/path/to/views' => base_path('resources/views/vendor/courier'),
        ]);
    }
    

    【讨论】:

    • L5 现在只支持作曲家包
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    • 2015-08-10
    • 1970-01-01
    相关资源
    最近更新 更多