1

私は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をトレースして更新するだけで済みます。

では、コントローラでこの方法でルートを書くと何か問題はありますか? または、コントローラーからビューパスを抽象化する他のより良い方法はありますか?

4

2 に答える 2

0

ビューの名前を格納するためのプロパティを常にクラスに作成し、ビューを作成するたびにそのプロパティを呼び出すことができます。

于 2013-10-14T14:42:14.807 に答える