【问题标题】:Laravel - Autoloading of ViewsLaravel - 自动加载视图
【发布时间】:2014-07-31 04:31:12
【问题描述】:

我的项目是一个 Laravel 项目

如果我使用了 psr-4 自动加载,例如

"psr-4": { 
    "Admin\": "app/www/admin" 
 }

它可以正常工作和路由 为了在控制器中创建视图,我使用 addNamespace:

View::addNamespace('admin', 'app\www\Admin\views'); 
return View::make('admin::dashboard');

这可行,但无论如何可以在配置中的某个地方访问视图吗?如果可以的话,谁能给我举个例子。

我猜我要找的结果是这样的:

View::make('admin.dashboard');

非常感谢

艾登

【问题讨论】:

    标签: php laravel namespaces


    【解决方案1】:

    如果我理解正确,您希望 Laravel 查看多个文件夹,而不仅仅是默认的 /app/views/ 文件夹。

    如果是这样,你可以在配置中设置:

    // /app/config/view.php
    'paths' => array(__DIR__.'/../views', __DIR__.'/../../admin/views'),
    
    // Using it
    View::make('admin.dashboard'); // Look into www/admin/views/admin/dashboard.blade.php
    

    这没有经过真正的测试,但希望能为您指出正确的解决方案。需要注意的是,您那里还有另一个管理文件夹(遵循 laravel 视图文件夹结构)

    【讨论】:

    • 是的很酷,那么我将如何调用典型视图 View::make('admin.dashboard') 或 View::make('dashboard') ?
    • OKOK 它正在工作,但如果我有相同的文件名,例如/admin/views/dashboard.php 和 /public/views/dashboard.php 我将这两个都添加到 app/config/view.php 它如何区分?
    • 酷,正在更新我的答案,但很高兴你能成功。我相信数组顺序很重要,在我的回答中,它会首先查看 laravel 默认文件夹。如果您希望它首先扫描您的管理文件夹,请将其设置为第一个值,而不是第二个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 2015-12-14
    • 1970-01-01
    相关资源
    最近更新 更多