Laravel中的命名空间视图

时间:2013-11-06 18:30:31

标签: php laravel

我被提到了Juggling Larger Laravel Applications,而且我很难找到

View::addNamespace('Marketing', __DIR__.'/../Views')

在我的一个子应用目录中工作,视图位于 /var/www/myapp.com/app/MyApp/Marketing/Views < / p>

将此代码放入 /var/www/myapp.com/app/MyApp/Marketing/Providers/MarketingServiceProvider.php

<?php namespace MyApp\Marketing\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\View;

class MarketingServiceProvider extends ServiceProvider
{
    public function register()
    {

    }

    public function boot()
    {
        require_once(__DIR__.'/../routes.php');
        View::addNamespace('Marketing', __DIR__.'/../Views');
    }
}

并在我的路线文件中引用它,如

Route::group(array('domain' => array('www.myapp.dev')), function()
{
    return View::make('Marketing::index');
});

导致没有为[营销]定义提示路径。

我还添加了

MyApp\Marketing\Providers\MarketingServiceProvider

到提供者的配置数组。

最后,我在作曲家中使用psr-0

"autoload": {
    "psr-0": {
        "MyApp": "app/"
    },

3 个答案:

答案 0 :(得分:1)

我很蠢......问题不是我想的那样......

Route::group(array('domain' => array('www.myapp.dev')), function()
{
    return View::make('Marketing::index');
});

将我的路线改为上述路线可以解决所有问题。我不小心在另一个数组中使用了www.myapp.dev,这导致了所有意外结果。

答案 1 :(得分:1)

我也很困惑......错了:

Route::group(array('domain' => array('www.myapp.dev')), function()
{
    return View::make('marketing.index');
});

并将您的营销索引视图存储为:app/views/marketing/index.blade.php

答案 2 :(得分:-2)

为什么你会尝试命名视图?只需将它们放在名为“marketing”的文件夹中......