2015-12-16 5 views
0

Я определил маршрут API в Laravel как этотОпределение нескольких маршрутов API в Laravel 5.1

Route::group(array('prefix' => 'api'), function() { 
    Route::resource('getdealsbymerchant/{merchant_url_text}', '[email protected]'); 
}); 

Этот маршрут работает нормально и возвращение мне ответ. Я хочу добавить еще один маршрут, как это в группе

Route::resource('getsimilarmerchants/{merchant_id}', '[email protected]'); 

Однако, когда я добавить это и попытаться ударить

http://localhost/api/getsimilarmerchants/123 

он дает мне ошибку

Route pattern "/api/getdealsbymerchant/{merchant_url_text}/{{merchant_url_text}}" cannot reference variable name "merchant_url_text" more than once. 

Любая помощь как я могу это исправить?

ответ

0

Почему у вас есть контроллер ресурсов, указывающий на метод? Это должно быть

Route::resource('getdealsbymerchant', 'dealsController'); 

Аналогично определить второй ресурс тоже. Подробнее здесь: http://laravel.com/docs/5.0/controllers#restful-resource-controllers

Если вы просто хотите прибудете/пост маршрут, определить следующим образом

Route::get('getdealsbymerchant/{merchant_url_text}', '[email protected]'); 
+0

Изменил их на Маршрут :: ресурс ('getdealsbymerchant/{merchant_url_text}', 'dealsController'); Маршрут :: ресурс ('getsimilarmerchants/{merchant_id}', 'similarmerchantsController'); в маршруте группы API. По-прежнему получается такая же ошибка. –

+0

Я не думаю, что вы можете передать параметр контроллеру «resource», как вы это сделали с '{merchant_url_text}' –

+0

Это действительно так. Его работа для моего первого маршрута. Я могу получить доступ к merchant_url_text в моей функции indexController сделок. Просто не работаю на второй маршрут. –

0

Похоже, что я делаю неправильно.

Определено 2 маршрута, как этот, и смог решить проблему.

Route::get('api/getsimilarmerchants/{merchant_id}', ['uses' => '[email protected]']); 
Route::get('api/getdealsbymerchant/{merchant_url_text}', ['uses' => '[email protected]']); 
Смежные вопросы