2015-08-18 4 views
1

я следовать этому link
создать проект HMVC в Laravel
мою структуру файла как этотНевозможно отобразить вид из контроллера/маршрута в HMVC Laravel

+ [app] 
    + [Another Directory] 
    + [modules] 
    + [content] 
    + [shop] 
     + [controllers] 
     - ShopController.php 
     + [view] 
     - home.blade.php 
     - route.php 
     - ServiceProvider.php 
    - ServiceProvider.php 
+ [Another Directory] 

это мой shopController.php

<?php 
namespace App\Modules\Shop\Controllers; 

use App\Controllers\BaseController; 
use View; 

class ShopController extends BaseController { 

    public function showWelcome() { 
     return View::make('shop::home'); 
    } 

} 

и это мой маршрут в модуле магазина

<?php 

Route::get('/shop', 'App\\Modules\\Shop\\Controllers\\[email protected]'); 

я пытаюсь проверить вернуть простую строку приветствия от маршрута в модуле магазина, и это работает

<?php 
Route::get('admin/shop', function() { 
    return '<h1>Hello</h1>'; 
}); 

но где я не хватает
поэтому не может отображать вид из маршрута или контроллера в HMVC


@update Jan.J

маршрут в модуле магазина

//this is working 
Route::get('admin/shop', function() { 
    return '<h1>hello</h1>'; 
}); 

//this is working, result laravel default page hello in view mvc 
// but i can't dispay view in shop module 
Route::get('admin/shop', function() { 
    return View::make('hello'); 
}); 

//i try your script something like this, and it's not working 
//correct me if i'm wrong 
Route::get('/shop', 'new App\Modules\Shop\Controllers\ShopController(app('request'));'); 

@update

я пытаюсь обновить свой магазин маршрут назвать вид в модуле магазина, как этот

<?php 
Route::get('test/', function() { 
    return View::make(‘shop::home’); 
}); 

и это даст результата Class '‘shop' not found

любой идея?

+1

Возможно, это только опечатка, о которой идет речь, но ваш каталог называется [Module], но вы ссылаетесь на него как на модули. Если ваш композитор автоматически загружает точки в несуществующий каталог, который приведет к этим ошибкам. –

+0

@ Jan.J да, это опечатка, мое имя каталога - это модули .... но я обращаюсь к нему с Capital M, то же самое с примером в creolab ... это нормально? – Neversaysblack

+1

Да, самозарядка classmap позаботится об этом. Вы можете попытаться создать экземпляр своего контроллера в другом месте и посмотреть, правильно ли загружен класс. И перед этим запустите 'comper autoload'. –

ответ

1

Проверьте класс контроллера так:

Route::get('/shop', function() { 
    $controller = new App\Modules\Shop\Controllers\ShopController(app('request')); 
    var_dump($controller); 
}); 

ли это работает? Вы видите классный свал? ИЛИ если не отображается ошибка.

+0

no it's give error 'Декларация объявления пространства имен должна быть самой первой операцией в скрипте' – Neversaysblack

+0

В какой файл появилась эта ошибка? Вы должны это проверить. –

+0

Я уже проверяю это..и это от shopController php Я уже отправляю свой магазинКонтроллер.php в моем посте и не знаю, где я отсутствую – Neversaysblack

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