【问题标题】:Namespacing views in LaravelLaravel 中的命名空间视图
【发布时间】:2014-01-03 04:11:11
【问题描述】:

我被推荐给Juggling Larger Laravel Applications,但我遇到了麻烦

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

在我的 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');
});

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

我也加了

MyApp\Marketing\Providers\MarketingServiceProvider

到提供者的配置数组。

最后,我在 composer 中使用 psr-0

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

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    而且我很愚蠢……问题不是我想的那样……

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

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

    【讨论】:

      【解决方案2】:

      我也很困惑……怎么了:

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

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

      【讨论】:

      • 什么都没有。 domain 设置为字符串(即“www.myapp.dev”),而不是导致我所有问题的数组。
      【解决方案3】:

      您到底为什么要尝试为视图命名空间?只需将它们放在一个名为“营销”的文件夹中...

      【讨论】:

      • 我有 MyApp/Marketing/ViewsMyApp/API/ViewsMyApp/Admin/Views。我每个都有一个 index.blade.php 。如果没有命名空间,Laravel 怎么知道我调用的是哪个视图?
      • 您的视图文件不是 PHP 类,因此不要命名空间。您的控制器指定要加载的视图,使用文件夹来挑选它。如果“marking”、“admin”和“api”文件夹不够清晰,那么你正在做一些真正奇怪的事情。
      • 感觉并不奇怪 :) 我指的是通过View::addNamespace() 实现的Resource Namespace。发现了我的问题,与我所追求的无关。
      • 我必须做同样的事情,我必须在逻辑上拆分我的视图以及模型和控制器所需的类。文件夹很好,但有时应用程序需要不同的结构。
      • 也许有一种情况你想模块化你的代码...
      猜你喜欢
      • 2015-06-21
      • 2015-03-15
      • 2020-08-08
      • 2020-03-02
      • 2019-01-02
      • 2020-02-18
      • 2023-03-21
      • 2015-07-27
      • 2016-11-27
      相关资源
      最近更新 更多