У меня есть контроллер RESTful для моих пользователей, чтобы обрабатывать просмотр профиля пользователя.Laravel 4. маршрут контроллера по умолчанию не принимает аргументы
Проблема заключается в следующем:
Я хочу, чтобы URL, чтобы посмотреть, как этот www.example.com/user/1
Это покажет пользователю с идентификатором 1. Проблема в том, что, когда я определить метод getIndex
в UserController он не примет идентификатор в качестве аргумента.
Вот моя routes.php часть:
Route::controller('user', 'UserController');
Теперь, я понимаю, что GetIndex является своего рода маршрут по умолчанию, если ничего другого не поставляется в URL, и так это:
public function getIndex() {
}
в UserController будет принимать маршруты,
"www.example.com/user/index"
и
"www.example.com/user"
а также! не
Однако, если я включаю аргумент, что он должен взять из URL, он больше не работает:
public function getIndex($id) {
//retrieve user info for user with $id
}
Это будет реагировать только на
"www.example.com/user/index/1"
и не
"www.example.com/user/1"
Как я могу заставить последнее работать? Я действительно не хочу загромождать URL со словом «индекс», если это не обязательно.
@devo. Насколько я понимаю, такой контроллер фактически был контроллером ресурсов, тогда как контроллер RESTful был таким, что каждая функция соответствует действию HTTP и URI, объединенным вместе. В данном случае это: 'общественная функция getProfile() {}' в контроллере пользователя будет реагировать на запрос HTTP GET для '.com/пользователя/profile' Весь мой контроллер пользователя настроен чтобы использовать этот метод, и я предпочел бы сохранить его таким образом. Нет ли способа заставить его работать без использования контроллера ресурсов? или просто включит функцию show в любом контроллере? –