私はlaravelにはかなり慣れていません.laravel MVCアプリケーションで見たものから、ほとんどのチュートリアルではコントローラーを使用してビューを返すView::make('[PATH]')
ため、典型的なシナリオは次のようになります:
app/routes.php
Route::get('search', array(
'uses' => 'SearchController@newSearch',
'as' => 'search.index'
));
Route::get('search_result', array(
'uses' => 'SearchController@runSearch',
'
));
アプリ/コントローラー/SearchControllers.php
public function newSearch()
{
return View::make('search');
}
public function runSearch()
{
//validate and query search
return View::make('search')
->with('result',$result);
}
search.php
後でビューを再構築しweb/search.php
、たとえば他の関連するビューと一緒に配置することにした場合、すべてのコントローラーをトレースしてビューへのパスを更新する必要がなくなることを除いて、これはすべて良いことです。
代わりに、次のようにroute.phpを「ビュー ファクトリ」として作成した場合、何か問題はありますか。
Route::get('search', array('as' => 'search.index', function()
{
return View::make('search');
}));
Route::get('search_query', array(
'uses' => 'SearchController@runSearch'
));
Route::get('search_result', array('as' => 'search.result', function()
{
return View::make('search')
->with('result',Session::get('result'));
}));
ビューを作成するには追加のルートが必要ですが、それでも機能しますが、ビューの名前を再構築または変更する必要がある場合は、 route.phpをトレースして更新するだけで済みます。
では、コントローラでこの方法でルートを書くと何か問題はありますか? または、コントローラーからビューパスを抽象化する他のより良い方法はありますか?