为什么我得到错误的 URI?

Why I am getting wrong URI?

我目前在

http://127.0.0.1:8000/cars/

我有一个 link 必须将我路由到

http://127.0.0.1:8000/cars/create

我在我的代码中使用了这个

            <a
                href="cars/create"
            </a>

在我的 web.php 我有以下路线

Route::get('cars/create',function ()
{
    return view('carsops.create');
});

当我点击 link 时,我被重定向到

http://127.0.0.1:8000/cars/cars/create

而不是

http://127.0.0.1:8000/cars/create

为什么我得到这个额外的 /cars 有什么错误。 谁能帮帮我。

你必须在link前面加上一个/:

        <a
            href="/cars/create"
        </a>

这意味着Go to the site root, then got to cars path then go to the create path

这个解决方案不好。为什么?好的,您应该在应用程序中使用路由名称。

如何正确解决这个问题?

第一步是为您的路线设置名称。修改routes/web.php喜欢

Route::get('cars/create',function ()
{
    return view('carsops.create');
})->name('carsops.create');

看看name。名字随便起。

第 2 步是,在 blade 中调用你的路由,就像这样

<a
    href="{{ route('carsops.create') }}"
</a>

做得好。

Laravel href 链接是通过给名字做的, 如果你想要一个没有变量的 return 视图,你不需要获取方法

Route::view('cars/create','carsops.create')->name('yournamelink');

在blade页中使用

<a href="{{route('yournamelink')}}">goto page</a>

根相关 URL 总是以 / 字符开头,看起来像 <a href="/cars/create">create car</a>.

您发布的 link:<a href="cars/create">create car</a> 正在 link 发送到位于名为 create in cars 的目录中的文件夹,目录 cars 与 html 出现此 link 的页面。

因此使用 Laravel Helper 更容易。正如这里已经提到的。

<a href="{{ route('car.create') }}"</a>

您在 web.php 中定义路由名称,在 api.php 文件中为 api link 定义路由名称。

Route::get('/create-car', [App\Http\Controllers\PageController::class, 'create'])->name('car.create');