5

私はCodeIgniterからLaravelに来ています。

では、すべてのコントローラーへの自動ルートを使用するのは悪い考えですか?

Route::controller(Controller::detect());

routes.php でルートを作成する代わりにこれを使用する必要がありますか?

4

5 に答える 5

10

はい、これは悪いです。

Controller :: detect()は少し壊れているため、実際にはLaravel4には存在しません。

detect()はファイルシステムを調べてコントローラーファイルを返しますが、ルートを定義する順序が重要であるため、これはお勧めできません。ネストされたコントローラーがある場合、これは非常に簡単に壊れます。

また、detect()はファイルシステムに応じて異なる順序でファイルを返すため、これは多くの予測不可能性につながります。

すべてのルートを任意の方法で定義する必要があると私は主張します。読み取りとデバッグがはるかに簡単です。

于 2013-03-05T18:19:43.043 に答える
5

CI にはない Laravel の興味深い点の 1 つは、特定のページでは、コントローラーをまったく必要とせずにビューに直接ルーティングできることです。「About Us」のような静的ページについて考えてみてください。コントローラーはほとんど何もしませんが、CodeIgniter ではコントローラーとビューをセットアップする必要があります。Laravel の場合、この場合、ビューに直接ルーティングできます。

ルートを手動で設定すると、これらの短絡ルートを設定できます。

于 2013-03-05T18:17:21.747 に答える
1

自動検出は悪い考えです。

ルートを使用するか、Route::controller('mycontroller') または Route::controller(array('mycontroller', mycontroller2'); のようなコントローラーの配列を使用できます。

その後、自動検出なしでメリットが得られます。

于 2013-03-05T18:21:40.007 に答える
-1

以下は、CRUD および汎用ルーティングの良い例です。

タイプ php arisan controller:make SampleController

routes.phpを編集して追加

Route::resource('sample', 'SampleController'); 

次に、入力 php artisan routesして新しく作成されたルートを表示します

于 2014-12-04T06:01:50.097 に答える