如何使用 if 路由条件在 2 个单独的视图函数中使用相同的渲染? (Laravel/Livewire)
Posted
技术标签:
【中文标题】如何使用 if 路由条件在 2 个单独的视图函数中使用相同的渲染? (Laravel/Livewire)【英文标题】:How do I use the same render in 2 separate view functions using the if route is condition? (Laravel/Livewire) 【发布时间】:2021-08-05 19:18:18 【问题描述】:??
我想通过检查路由是否与当前路由相同,在渲染函数中渲染 2 个不同的 Livewire.view,如下所示:
public function render()
if (\Route::named('admin-appointments'))
return view('livewire.admin-appointments', [
'data' => $this->read(),
]);
else
return view('livewire.user-appointments', [
'data' => $this->read(),
]);
但我总是有问题!
【问题讨论】:
【参考方案1】:根据路线进行渲染不太可能奏效。第一个请求将具有正确的路由,但所有后续请求将由 Livewire 触发,不再与您的路由匹配。相反,您需要在挂载 Livewire 组件时设置一个标志,并根据此进行渲染。
【讨论】:
但我在 laravel 中找到了它是否有帮助:访问当前路线使用 Illuminate\Support\Facades\Route; $route = Route::current(); // 照亮\路由\路由 $name = Route::currentRouteName(); // 字符串 这对后续请求有效吗?我认为它不会让您的组件无法正确呈现。 是的,我试过了,它可以工作,但是如果我调用一个特定的视图,它会在与另一个视图相关的地方给我带来错误!! 我不明白你的意思。你能解释一下吗?以上是关于如何使用 if 路由条件在 2 个单独的视图函数中使用相同的渲染? (Laravel/Livewire)的主要内容,如果未能解决你的问题,请参考以下文章