在view-composer中找不到模型类

时间:2014-06-18 13:09:42

标签: view model laravel-4 composer-php

我会使用视图编写器调用模型从数据库中检索信息,但是我收到错误:“类'App \ Composers \ Region'找不到”

我的文件“filtersComposer”位于“composers”文件夹中,该文件夹自动加载了composer.json

在我的方法“compose($ view)”中,我将这个模型称为:

$regions = Region::all()->lists('region_intitule', 'region_id');

然后,例如我发送到我的视图

$view->with('localities', $regions)

但似乎无法访问Region类。 另外,Region类不在“composers”文件夹中,而是在我的“models”文件夹中。

请告诉我如何在我的类filtersComposer中从数据库中检索信息?

感谢您的帮助

“app / composers”中的作曲家服务提供商:

namespace App\Composers;

use Illuminate\Support\ServiceProvider;


class ComposerServiceProvider extends ServiceProvider {

  public function register()
  {
    $this->app->view->composer('includes/filtersBar/verticalFilter', 'App\Composers\FiltersComposer');
  }

}

FiltersComposer,也在“app / composers”

namespace App\Composers;

Class FiltersComposer {

    public function compose($view)
    {
        $regions = Region::all()->lists('region_intitule', 'region_id');

        $view->with('localities', $regions);
    }
}

此外,我的作曲家在命名空间中没有前缀“App \”时也不工作......但这不是问题!

1 个答案:

答案 0 :(得分:1)

由于您的FiltersComposer位于App\Composers命名空间中。 PHP认为您的Region是App \ Composers \ Region。

我相信您创建了Region模型的典型方式,它位于全局命名空间中。所以试试这个:

$regions = \Region::all()->lists('region_intitule', 'region_id');