2013-01-18 10 views
8

私はLaravel PHPフレームワークを使用していますが、いくつかのことについて不思議です。デフォルトapplication/routes.phpファイルには、これを含んでいますLaravelでデフォルトコントローラを設定する方法は?

Route::get('/', function() 
{ 
    return View::make('home.index'); 
}); 

これは単にビューを出力しますが、どのように私はそこからコントローラを呼び出すのですか?

上記のルート全体を削除し、デフォルトのURL(つまりexample.com/)でホームコントローラを使用していると思われるRoute::controller('home')に置き換えることができます。しかし、Route::controller('article')のような他のコントローラーは機能しません。example.com/articleにしかありません。記事コントローラをデフォルトとしてどのように設定するのですか?

答えて

12

だけクラス名およびメソッド名の間@と、文字列として制御を渡す:

Route::get('/', '[email protected]'); 

読むthe docs(コントローラのアクションを指すルートを登録表題により例にスクロール)。

+0

ありがとう、何とか私はページのその部分を逃した。しかし、家のことはどうですか? 'Route :: get( '/'、 'home @ index')は' Route :: controller( 'home') 'と同じですか? – DisgruntledGoat

+0

@DisgruntledGoat - いいえ。 'Route :: get( '/'、 'home @ index')'はインデックスメソッドのみを登録し、 '/'ルートにのみ登録します。 'Route :: controller( 'home')'はすべてのメソッドをそれぞれのURLにマップして登録します。 –

+0

後者はどのように機能しますか?コントローラ全体を '/'に登録すると、 'example'というコントローラとホームコントローラの 'example'メソッドの間で、 '/ example'が曖昧にならないでしょう。 – DisgruntledGoat

2

/」は特別な場所であり、Route::get('/','[email protected]')で設定できます。ホームコントローラ上の他のすべてのアクションのために

あなたはのURLように持っている「/home/action1」または「/home/action2」を持つことになります。

/」に割り当てられているコントローラを作成する必要はないことを理解しています。

私は私の返信で明確であることを願っています。繰り返しますが、これはあなたの質問に対する試行された答えではありませんが、あなたが経路処理に悩まされている場合にはあなたのための提案です。私はあなたが戻って数日である同じ段階にいた:)

+2

これは古い投稿ですが、Googleのトップの1つなので、その理由でコメントしています。誰かがこれを見つけた場合、Route :: Controller( '/'、 'C​​ontroller')を設定すると、他のすべてのリンクが壊れるため、コントローラルートにデフォルトの '/'を使用することはお勧めできません –

関連する問題