抱歉,我需要粘贴这么多代码,但我认为这是理解我的结构所必需的。
我有一个用户资源Route::resource('/clients', ClientController::class)->middleware(['auth']);
对于路线users.show
,我在我的UsersController
:
public function show(Client $client)
{
return view('clients.show', [
'client' => $client,
]);
}
然后我clients.show
简化了我的观点
<x-client-layout>
Bla Bla ...
</x-client-layout>
我的layouts.client
@include('core.header')
@include('layouts.navigation-client')
<main class="flex flex-col w-full min-h-screen">
{{ $slot }}
</main>
@include('core.footer')
现在,layouts.navigation-client
我想创建一个指向该路线的链接Route('users.show', $client->id)
。但是如何将其传递$client
给导航视图?
<x-nav-link :href="Route('users.show', $user->id)" :active="request()->routeIs('users.show')" icon="user">
可行但感觉不好的做法是:
Route('users.show', explode("clients/", url()->current())[1])
在您users.show
看来,您可以将客户端 ID 传递给<x-client-layout>
.
<!-- users.show view-->
<x-client-layout :client="$client">
<!-- component markup -->
</x-client-layout>
只需确保$client
在<x-client-layout />
组件中定义默认值,例如带有 的客户端$client->id = 0
,否则您可能会收到未定义的错误。
您还可以有条件地仅在$client->id
具有除此之外的值时显示链接0
- 这样您可以将默认值设置为0
并将<x-client-layout />
用于不需要$client->id
且不需要显示链接的其他视图。
然后您可以将 传递$client
给layouts.navigation-client
,然后将其用于<x-nav-link />
@props([
'client'
])
@include('core.header')
@include('layouts.navigation-client', ['client' => $client])
<main class="flex flex-col w-full min-h-screen">
{{ $slot }}
</main>
@include('core.footer')
然后在layouts.navigation-client
<x-nav-link :href="route('users.show', $client->id)" :active="request()->routeIs('users.show')" icon="user" />
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句