2013-06-04 5 views
1

Heloo, им сделать приложение laraver 4 для впервые и некоторых вещей, я до сих пор не понимаю, один из них контроллеры:Laravel 4 контроллеров и маршруты

В laraver 3 я мог бы сделать что-то вроде:

Route::get('/',array('uses'=>'[email protected]')); 

и на контроллере:

public function get_index(){ 
    return 'hello'; 
} 

Но теперь у Laravel 4 у меня есть что-то вроде:

class HomeController extends BaseController { 

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

} 

Первым в этом файле я могу изменить HomeController только для дома? Как я могу сделать контроллер спокойным?

И на маршрутах:

Route::get('/', array('uses'=>'[email protected]')); 

Как я могу назвать его, это не работает.

Не понял вообще документация laravel 4.

ответ

2

Это уже RESTful, просто была небольшая ошибка на маршруте, попробуйте следующее:

Route::get('/', array('uses'=>'[email protected]')); 

В использовании вы должны [email protected], так что showWelcome в вашем случае, а не только Welcome.

Кроме того, вы можете изменить его на главную, но лучше придерживаться имени HomeController (или AnythingController), если у вас для этого нет веской причины.

+0

Это не работает. похоже, что маршрут не определен. –

+0

Взгляните на свои маршруты, выполняющие 'php artisan routes' –

+0

Похоже, что группа маршрутов« отменяла »маршрут указателя, почему это могло быть? –

3

Метод showWelcome не является RESTful и, следовательно, имеет маршрут, который непосредственно сопоставляется с ним. Если вы хотите, чтобы ваши методы на HomeController с префиксом HTTP-глагола отвечали, например get, post, put, вам необходимо зарегистрировать контроллер с помощью Route::controller.

Route::controller('/', 'HomeController'); 

Вы должны переименовать этот метод к getWelcome и вы бы перейти к нему, нажав localhost/yourapp/welcome. Вы бы использовали getIndex, если хотите нажать localhost/yourapp.

+0

OMG THANK YOU !!!! –

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