在使用Livewire渲染整页组件之前,如何检查资源是否存在?使用Laravel控制器,这非常简单。
我的路线:
Route::get('/profiles/{id}', \App\Http\Livewire\Profiles\Manage::class)->name('profiles.manage');
我是Profiles \ Manage类,用于在呈现整个页面组件之前检查配置文件是否存在。
我正在使用组件中的挂载功能挂载概要文件数据,并尝试检查概要文件是否存在(并相应地重定向)。但是,重定向无效。
public function mount($id)
{
$this->profile = Profile::where(['user_id' => Auth::user()->id, 'id' => $id])->first();
if(!$this->profile) {
return redirect()->to('/404');
}
}
我也尝试过在render()方法中执行此操作,该方法返回了组件视图,但是该方法需要渲染livewire组件。
答案 0 :(得分:0)
正如Qirel所说,我认为$this->profile
确实存在空值,所以也许您可以尝试在mount方法中使用findOrFail:
$this->profile = Profile::findOrFail($id);