在Laravel 5.1中定义多个API路由

时间:2015-12-16 00:55:56

标签: laravel-5.1 laravel-routing

我已经在Laravel中定义了一条API路线,就像这样

Route::group(array('prefix' => 'api'), function() {
    Route::resource('getdealsbymerchant/{merchant_url_text}', 'dealsController@index');
});

这条路线工作正常并给我回复。我想在小组中添加这样的另一条路线

Route::resource('getsimilarmerchants/{merchant_id}', 'similarmerchantsController@index');

然而,当我添加此内容并尝试点击

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.

有关我如何解决此问题的任何帮助?

2 个答案:

答案 0 :(得分:0)

为什么资源控制器指向某个方法? 它应该是

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

同样也定义第二个资源。在此处阅读更多内容:http://laravel.com/docs/5.0/controllers#restful-resource-controllers

如果您只想要一个获取/发布路线,请按以下方式定义

Route::get('getdealsbymerchant/{merchant_url_text}', 'dealsController@index');

答案 1 :(得分:0)

看起来我做错了。

定义了2条这样的路线,并且能够解决问题。

Route::get('api/getsimilarmerchants/{merchant_id}', ['uses' => 'similarmerchantsController@index']);
Route::get('api/getdealsbymerchant/{merchant_url_text}', ['uses' => 'dealsController@index']);