user8989878
user8989878

Reputation: 149

Laravel call different controller for same resource route

I made a resource controller and route in my api.php. Now I want to create a new route like in Route 2. The issue is when I hit the second route it shows me no resource found error because it's called my test. show method. I want to use both routes is there any solution for that?

Route 1 => Route::resource('test', 'App\Http\Controllers\Api\v1\MyController');
Route 2 => Route::get('test/greetings', 'App\Http\Controllers\Api\v1\MyController@greetingsData');

Upvotes: 1

Views: 622

Answers (2)

mohammad asghari
mohammad asghari

Reputation: 1894

Change the line orders. Laravel use first line from top that is appropriate candidate.

Route 1 => Route::get('test/greetings', 'App\Http\Controllers\Api\v1\MyController@greetingsData');
Route 2 => Route::resource('test', 'App\Http\Controllers\Api\v1\MyController');

Upvotes: 1

Muhammad Dyas Yaskur
Muhammad Dyas Yaskur

Reputation: 8098

put the new sub route in the top/above of the resource. should be like:

Route::get('test/greetings', 'App\Http\Controllers\Api\v1\MyController@greetingsData');
Route::resource('test', 'App\Http\Controllers\Api\v1\MyController');

Upvotes: 1

Related Questions