В установке с Laravel 4, используя Jeffrey Way's Laravel 4 Generators, я создал «твит» ресурс, используя команду люльки из его примера:Laravel 4 - изменение ресурса пути корневой маршрутизации
php artisan generate:scaffold tweet --fields="author:string, body:text"
Это породило модель, вид , контроллер, миграция и информация о маршрутизации для типа твита. После миграции базы данных, посещение http://localhost:8000/tweets
прекрасно работает и отображает ожидаемый контент.
Содержимое routes.php
файла в этой точке:
Route::resource('tweets', 'TweetsController');
Теперь я хотел бы, чтобы переместить URL для tweets
на один уровень вверх в admin/tweets
, поэтому выше URL должно стать: http://localhost:8000/admin/tweets
. Обратите внимание, что я не рассматриваю «Admin» как ресурс, а просто хочу добавить его для гипотетических организационных целей.
Изменение файла routes.php к:
Route::resource('admin/tweets', 'TweetsController');
Не работает, и выводит следующее сообщение об ошибке:
Unable to generate a URL for the named route "tweets.create" as such route does not exist.
Аналогично при использовании следующие:
Route::group(array('prefix' => 'admin'), function() {
Route::resource('tweets', 'TweetsController');
});
As было предложено в this stackoverflow question.
Использование php artisan routes
показывает, что названные маршруты также теперь имеет admin
приставку к ним, превращая tweets.create
в admin.tweets.create
.
Почему ошибка в том, что она не может найти tweets.create
? не следует автоматически разрешать (судя по таблице маршрутов), использовать admin.tweets.create
?
Как изменить свою маршрутизацию, чтобы эта ошибка больше не возникала?
Я только что протестировал новый контроллер ресурсов, и он отлично работает для меня. Проблема заключается не в Маршруте, а в том, что файлы просмотра проверяют ваши файлы просмотра, есть ссылка на маршрут, например 'link_to_route ('tweets.create', ' Добавить новый твит ') ', это создает ошибку, потому что, когда вы добавляете' admin' в качестве префикса 'tweets.create', не существует, поэтому меняйте его на' admin.tweets.create' каждый раз, когда в вашем контроллере также используется когда-либо названный маршрут используется –
Спасибо за быстрый ответ! Я сам это заметил. Должно было выглядеть немного дольше, прежде чем размещать вопрос: P – Johannes