2

Laravel 4 のインストールでは、Jeffrey Way の Laravel 4 Generatorsを使用して、彼の例の scaffolding コマンドを使用して「つぶやき」リソースをセットアップしました。

php artisan generate:scaffold tweet --fields="author:string, body:text"

これにより、ツイート タイプのモデル、ビュー、コントローラー、移行、およびルーティング情報が生成されました。データベースを移行した後、訪問http://localhost:8000/tweetsは正常に機能し、期待されるコンテンツが表示されます。

routes.phpこの時点でのファイルの内容は次のとおりです。

Route::resource('tweets', 'TweetsController');

tweetsここで、 1 レベル上の URL を に移動したいadmin/tweetsので、上記の URL は次のようになりますhttp://localhost:8000/admin/tweets。「管理者」をリソースとして扱っているのではなく、架空の組織上の目的で追加したいだけであることに注意してください。

routes.php ファイルを次のように変更します。

Route::resource('admin/tweets', 'TweetsController');

動作せず、次のエラーが表示されます。

そのようなルートが存在しないため、名前付きルート「tweets.create」の URL を生成できません。

以下を使用する場合も同様です。

Route::group(array('prefix' => 'admin'), function() {
    Route::resource('tweets', 'TweetsController');
});

このstackoverflow questionで提案されたように。

を使用php artisan routesすると、名前付きルートにもadminプレフィックスが付いていることが明らかになり、 に変わりtweets.createますadmin.tweets.create


見つからないというエラーが表示されるのはなぜtweets.createですか? それは自動的に解決されるべきではありませんか(ルートテーブルから判断して)、使用しますadmin.tweets.createか?

このエラーが発生しないようにルーティングを変更するにはどうすればよいですか?

4

1 に答える 1