4

だから、私は安らかなコントローラーを動作させることができました

Route::controller('users','UserController');

class UserController extends BaseController {
    public function getAccount(){}
}

そのように/users/account動作します。ただし、次のようなことをしようとすると

Route::any('account',array('as' => 'account','uses' => 'UserController@account'));

に進み/account、動作しません ( NotFoundHTTPException)。名前付きルートと安静なコントローラーを組み合わせて使用​​する方法はありますか? 安らかなシステムがリクエストを分割する方法と、名前付きルートが URI をカプセル化し、関数名から分離する方法が気に入っています。これは Laravel 3 で機能しました。構文に何か欠けているのでしょうか、それとも Laravel 4 では意図的にこの種の組み合わせ動作を許可していませんか? ありがとう...

4

3 に答える 3

1

これを試して:

Route::get('/',array('as'=>'named_route','uses'=>'yourRestfulController@getMethod'));

これは私にとってはうまくいきます。トリックは、@ 部分の後にアクション タイプを追加することでした。L3 とは異なり、メソッドの完全な名前を使用する必要があります。

于 2013-06-08T22:26:50.993 に答える
0

これは私にとってはうまくいきます。トリックは、@ 部分の後にアクション タイプを追加することでした。L3 とは異なり、メソッドの完全な名前を使用する必要があります。

REST プレフィックスの get や post などは、実装する REST の種類を区別するためのパターンであるためです。restful コントローラーにルートの名前を付けたとき、それらは RESTful コントローラーのようには機能しなくなりましたが、名前を付けたい通常のコントローラーです。この例:

Route::get('user/profile/', array('as'=>'dashboard', 'uses'=>'ProfileController@showDashboard'));

これを考えてみましょう: SystemController を RESTful コントローラーにしたいと仮定すると、以下を定義します。

Route::controller('/', 'SystemController'); 

次に、SystemController の postDashboard にdashboardという名前を付けたいので、ルートを次のように変更します。

Route::get('user/profile/', array('as'=>'dashboard','uses'=>'SystemController@postDashboard'));
Route::controller('/', 'SystemController');

そのシナリオでは、postDashboardGETは であると宣言したため、プロトコル経由でアクセスするべきではありませんPOST。つまり、Laravel が RESTful コントローラーとして処理した場合です。 GET. そのように命名することは非常に適切ではありません。なぜなら、Laravel に SystemController を RESTful として扱うように指示するという、最初に必要なものを壊しているからです。

Jason Lewis の投稿を適切な回答と見なす必要があると思います。あなたも正しいので、@ardaの難しい感情はありません。

于 2013-11-01T01:54:30.420 に答える