2015-06-07 1 views
0

Вот моя структура приложения,Laravel 5 Фатальная ошибка: класс не найден исключение не может получить доступ к классам модели, когда он находится внутри папки

my-first-app 
    |  
    |-app 
    | 
    | -Commands 
    | -Console 
    | -Events 
    | -Http 
    | -models(custom define folder) 
     | 
     |-Base(folder) 
     | | 
     | | -StuDetails.php 
     | | -StuDetailsQuery.php 
     | 
     |-Map(foder) 
     |-StuDetails.php 
     |-StuDetailsQuery.php 

На самом деле я использую продвинет ORM для извлечения данных из базы данных. Я создал классы моделей внутри папки модели. Затем я попытался открыть StudetailsQuery класс внутри моего pageController класс, который находится внутри папки http, расширенной как контроллер.

Здесь:

<?php 
namespace App\models\propel; 
namespace App\Http\Controllers; 


use App\Http\Requests; 
use App\Http\Controllers\Controller; 


use Base\StuDetailsQuery; 
use Illuminate\Http\Request; 
use Illuminate\Support\Facades\View; 

class pagesController extends Controller 
{ 


    public function index() 
    { 
     $stu= StuDetailsQuery::create()->find(); 
     return view('pages.index', compact('stu')); 
    } 

Но я получаю сообщение об ошибке:

PHP Fatal error: Class 'Base\StuDetailsQuery' not found in /var/www/my-first-app/app/Http/Controllers/pagesController.php

Я попытался;

  • композитор свалка-автозагрузка
  • добавив следующие строки в composer.json файлу

    "Автозагрузка": { "ПСР-4": { "продвигают \": «приложение/модели/продвинет /» }}

но ничего не идет хорошо для меня .. Любые предложения, пожалуйста ??

ответ

1
"autoload": { 
     "classmap": [ 
      "database", 
      "app/models/propel" 
     ] 

это решить мою проблему ... :)

+0

Вам не нужно добавлять эти строки в автозагрузку. Я заметил, что ваше пространство имен неверно. Laravel 5 достаточно умен, чтобы загружать ваши классы, когда их пространства имен верны. – Digitlimit

0

я получаю подобные ошибки отсутствующих классов. Хотя я полностью соблюдаю примеры автозагрузки laracast в You Must Use Composer laracast (включая модификацию composer.json), я застрял с отсутствующей ошибкой класса.

При просмотре видео, которое я замечаю, метод jeffery использует случайное имя перед именем объекта ..... Я не знаю, почему, но в отчаянии я добавил его, и это сработало для меня.

В заключении я нахожу, что я должен использовать «\» перед объектом, как это:

нового \ Bar;

Надеюсь, это поможет, и если кто-то поможет мне понять, что происходит, сообщите нам об этом.

Смежные вопросы