0

現在、laravel 3 を学習していますが、技術的な質問があります。著者のリストがあり、これらの著者を並べ替えるためのフィルターを設定するためのリンクをいくつか作成しようとしています。

デフォルトのパラメーターを名前順に設定しようとしましたが、機能しますが、他のフィルターを渡すことができません。

これは私のルートです:

Route::get('authors', array('as'=>'authors', 'uses'=>'authors@index'));

そして、これは私のコントローラ関数です:

public function get_index($filter="name"){
    return View::make('authors.index')
        ->with('title', 'Authors list')
        ->with('authors', Author::order_by($filter)->get());
}

そして、これは私が望むフィルターを送信しようとしている私のビューのリンクです

{{ HTML::link_to_route('authors', 'Id', array('id')) }}
{{ HTML::link_to_route('authors', 'Name', array('name')) }}

ビューから送信しようとするパラメーター (id と name) はコントローラーに到達しないため、常にデフォルトのパラメーターを使用します。

ありがとうございました !

4

1 に答える 1

0

ルート パラメータを設定していないため、次のようにする必要があります。

Route::get('authors/(:any?)', array('as'=>'authors', 'uses'=>'authors@index'));

ドキュメントを見てみましょう: http://three.laravel.com/docs/routing#wildcards

于 2013-09-04T13:53:52.393 に答える