by Guest » 25 Dec 2024, 22:21
Ich lerne Laravel in einem bestehenden 11.29.0-Projekt.
Ich habe zwei Routen definiert:
Code: Select all
//api.php
Route::get('/items/approved', [ItemController::class, 'approved']);
Route::get('/items/{id}', [ItemController::class, 'show']);
In meinem Controller habe ich Folgendes:
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');
//...
}
}
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 lerne Laravel in einem bestehenden 11.29.0-Projekt.
Ich habe zwei Routen definiert:
[code]//api.php
Route::get('/items/approved', [ItemController::class, 'approved']);
Route::get('/items/{id}', [ItemController::class, 'show']);
[/code]
In meinem Controller habe ich Folgendes:
[code]//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');
//...
}
}
[/code]
Wenn ich eine GET-Anfrage an /items/approved mache, wird immer die Funktion show($id) aufgerufen.
Sollte die Tatsache, dass /items/approved [b]vor[/b] /items/{id} steht, es nicht so machen Die Funktion „approved()“ wird aufgerufen? Was übersehe ich?