我正在使用 Laravel 10 开发 REST API 项目。尽管已为端点(/dp 和 /dj)正确配置了 Laravel API 路由,但对这两个端点的 POST 请求意外执行 Web 路由,而不是预期的 api.php 路由。有趣的是,除了这两个端点(/dp 和 /dj)的 POST 之外的所有方法都可以正常运行,其他端点的 POST 方法也是如此。例如,如果我为这两个端点(/dp 和 /dj)点击 PUT、GET 或 DELETE 方法,它们会按预期工作,但 POST 方法不会。如果我在 web.php 中删除该路由,它会返回“404 not found”。
这是我在 api.php 中的路线:
Route::group(['namespace' => 'App\Http\Controllers', 'middleware' => 'auth:sanctum'],function () {
Route::apiResource('users', UserController::class)->middleware(['auth','verified','role:admin']);
Route::apiResource('mous', MouController::class)->middleware(['auth','verified','role:admin|nasabah|banker']);
Route::apiResource('office', OfficeController::class)->middleware(['auth','verified','role:admin']);
Route::apiResource('jdp', JDPController::class)->middleware(['auth','verified','role:admin|nasabah|banker']);
Route::apiResource('dp', DPController::class)->middleware(['auth','verified','role:admin|nasabah']);
Route::apiResource('jdj', JDJController::class)->middleware(['auth','verified','role:admin|nasabah']);
Route::apiResource('dj', DJController::class)->middleware(['auth','verified','role:admin|nasabah']);
});
我的网络路线:
Route::get('/', function () {
return view('welcome');
});
这是我的 DP 控制器(/dp 和 /dj 逻辑相似,所以我只展示其中之一):
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\DokumenPribadi;
use App\Http\Resources\DPResource;
use Illuminate\Support\Facades\Auth;
use App\Http\Requests\StoreDPRequest;
use App\Http\Resources\DPCollection;
use App\Models\JenisDokumenPribadi;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Http\Response;
class DPController extends Controller
{
// Controller methods...
}
当我尝试访问(/dj 或 /dp)端点时,它返回welcome.blade.php 的视图。如果我在 web.php 中删除该路由,它会返回 404 错误。路线确实存在于路线列表中。
以下是截图: