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
か?
このエラーが発生しないようにルーティングを変更するにはどうすればよいですか?