Laravel GET Route ruft falsche Klassenfunktion auf
Posted: 25 Dec 2024, 22:21
Ich lerne Laravel in einem bestehenden 11.29.0-Projekt.
Ich habe zwei Routen definiert:
In meinem Controller habe ich Folgendes:
Wenn ich eine GET-Anfrage an /items/approved mache, wird immer die Funktion show($id) aufgerufen.
Sollte die Tatsache, dass /items/approved vor /items/{id} steht, es nicht so machen Die Funktion „approved()“ wird aufgerufen? Was übersehe ich?
Ich habe zwei Routen definiert:
Code: Select all
//api.php
Route::get('/items/approved', [ItemController::class, 'approved']);
Route::get('/items/{id}', [ItemController::class, 'show']);
Code: Select all
//ItemController.php
namespace App\Http\Controllers;
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
use App\Http\Resources\ItemResource;
class ItemController extends Controller{
//MARK: Approved
public function approved(): AnonymousResourceCollection
{
error_log('inside approved');
//...
}
//MARK: Show
public function show($id): ItemResource|JsonResponse
{
error_log('inside show');
//...
}
}
Sollte die Tatsache, dass /items/approved vor /items/{id} steht, es nicht so machen Die Funktion „approved()“ wird aufgerufen? Was übersehe ich?