Я работаю с Laravel 4.2. У меня есть приложение, которое направляет неправильное представление, хотя URL-адрес правильный. Нажав кнопку, он должен перейти на users.create
([email protected]
), но вместо этого маршрутируется в [email protected]
. Однако разрешенный URL-адрес правильный, а элемент DOM имеет правильный URL-адрес. Может кто-нибудь мне помочь?Laravel Routing to Wrong View
Вот подам Маршруты:
// Home page
Route::get('/', '[email protected]');
// Define User model to pass through routes
Route::model('user', 'User');
// Create custom route for editing a user
Route::get('users/edit/{user}',
array('as' => 'users.edit', 'uses' => '[email protected]'));
// Create custom route for showing a user
Route::get('users/{user}',
['as' => 'users.show', 'uses' => '[email protected]']);
// Remaining routes
Route::resource('users', 'UsersController',
array('except' => array('edit', 'show')));
Вот мой UsersController
с двумя функциями в вопросе:
class UsersController extends \BaseController {
protected $user;
public function create()
{
return View::make('users/create');
}
public function show($user)
{
return View::make('users/show', ['user' => $user]);
}}
А вот соответствующие результаты из php artisan routes
:
GET:HEAD users/{user} users.show [email protected]
GET:HEAD users/create users.create [email protected]
Спасибо за помощь!
Редактировать: Ответ на проблему состоял в том, чтобы просто переупорядочить маршруты таким образом, чтобы ресурс определялся первым. Я знал, что Laravel захватывает первый маршрут, соответствующий URI, но я до сих пор не понимаю, почему маршрут, который не передан объекту пользователя, будет выбирать маршрут, определенный как users/{user}
. Кроме того, я получал доступ к маршруту через link_to_route()
, то есть по имени. Почему Ларавель выбрал другой маршрут из той, которую я явно назвал?
Я полагаю, что эти вопросы выходят за рамки первоначального вопроса, но я был бы очень благодарен за дальнейшее объяснение от кого-то. Задача решена!
Хм ... Я новичок во всей концепции REST; Наверное, я просто не вижу в этом смысла. Я попробую вручную настроить маршруты и посмотреть, как это происходит. – kendaop