路由组前缀在 Laravel 8 中不起作用

时间:2021-07-20 05:33:42

标签: laravel laravel-8

我试图在 Laravel 8 中用 group routing 创建一个 prefix。但是当我在 http://localhost/mysite/admin/test/ 中测试它时,它总是抛出 error 404

这是web.php中的代码:

Route::prefix('/admin', function() {
    Route::get('/test', [Admin\LoginController::class, 'index']);
});

我在 app/Http/Controller/Admin/ 中创建了一个控制器,因为该控制器位于 Admin 文件夹中。

这是LoginController中的代码:

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class LoginController extends Controller
{
    public function __construct()
    {
        //
    }

    public function index()
    {
        echo "Please login";
    }
}

谁能告诉我我做错了什么才能让它正常工作?

3 个答案:

答案 0 :(得分:2)

您必须按照 documentation 中所述对路线进行分组,例如:

Route::prefix('admin')->group(function () {
    Route::get('/test', function () {
        // Matches The "/admin/users" URL
    });
});

在你的情况下是:

use App\Http\Controllers\Admin\LoginController;

Route::prefix('admin')->group(function () {
    Route::get('/test', [LoginController::class, 'index']);
});

答案 1 :(得分:0)

我认为应该是“admin”而不是“/admin”。 那个斜线使它:

http://localhost/mysite//admin/test

=>

http://localhost/admin/test

您可以使用以下方法检查所有路线:php artisan route:list

答案 2 :(得分:0)

  1. 试试这个

    use App\Http\Controllers\Admin\LoginController; 
    
    Route::prefix('admin')->group(function () {
         Route::get('test', ['LoginController::class, index'])->name('test'); });