使用 Laravel Vue Inertia 堆栈中的数据重定向路由 [英] Redirect route with data in Laravel Vue Inertia stack

查看:23
本文介绍了使用 Laravel Vue Inertia 堆栈中的数据重定向路由的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的控制器中我有

公共函数库(Request $request){$postData = $this->validate($request, ['名称' =>'必需的','状态' =>'必填 |布尔值']);房间::创建(['名称' =>$postData['name'],'活跃' =>$postData['状态'],]);$message = "添加房间";return redirect::route('rooms.index', ['msg' => $message]);}

我在道具中使用了'msg'

props:['rooms','errors','msg']

但是对于 {{msg}} 给出未定义而不是任何消息.

解决方案

您将 msg 作为参数传递给路由,而不是作为 Inertia::render<的参数/code> 调用.并且由于您正在重定向,您可能希望将消息闪存到会话并在 HandleInertiaRequests 中间件上处理它.查看文档中的示例.

所以,首先你重定向到 rooms.index 闪烁消息:

return redirect()->route('rooms.index')->with('message', 'My message');

然后,Inertia 请求 rooms.index 路由作为 XHR 请求,在它到达您的控制器之前,它会通过 HandleInertiaRequests 中间件.

class HandleInertiaRequests 扩展中间件{公共功能共享(请求 $request){返回 array_merge(parent::share($request), ['闪光' =>['消息' =>fn() =>$request->session()->get('message')],]);}}

现在您可以通过以下方式在您的组件中访问它: