如何return new model return in response 响应?
How to return new model return in response response?
在 laravel8/inertia/vue3 应用程序创建模型中,我将表单模式设置为“添加”模式,并在创建新模型时尝试 return
它作为回应,例如:
$角色=Role::create([
'name' => $request->name,
'guard_name' => 'web',
]);
return back ()->with('data', [
'role' => $role,
]);
但是我无法在客户端使用代码获得这个新模型:
this.form.post(this.route('admin.roles.store'), {
preserveScroll: true,
onSuccess: (resp) => {
console.log('resp::')
console.log(resp)
Toast.fire({
icon: 'success',
title: 'New role created!'
})
},
在浏览器中,我没有看到来自控件的模型 return:https://prnt.sc/1xxhS-EOHLSh
我该怎么做?
谢谢!
我认为你误解了一些事情:
首先: 当您使用 ->with
时,您会将 data
放入会话闪存中。您不会将其退还给客户。将结果放入闪存中可能不是您想要的。
return back ()->with('data', [
'role' => $role
]);
其次:如果打算在客户端使用onSuccess
来处理响应,则不能return back()
。您需要以传统的 AJAX 方式向客户端发送实际响应,如下所示:
return [
'data' => $role
];
第三: 我鼓励你避免使用 onSuccess
并像上面描述的那样返回 JSON,因为这违背了 Inertia 和我相信它更像是一个逃生舱口,适用于您无法以“惯性方式”做事的情况。
在 laravel8/inertia/vue3 应用程序创建模型中,我将表单模式设置为“添加”模式,并在创建新模型时尝试 return 它作为回应,例如:
$角色=Role::create([ 'name' => $request->name, 'guard_name' => 'web', ]);
return back ()->with('data', [
'role' => $role,
]);
但是我无法在客户端使用代码获得这个新模型:
this.form.post(this.route('admin.roles.store'), {
preserveScroll: true,
onSuccess: (resp) => {
console.log('resp::')
console.log(resp)
Toast.fire({
icon: 'success',
title: 'New role created!'
})
},
在浏览器中,我没有看到来自控件的模型 return:https://prnt.sc/1xxhS-EOHLSh
我该怎么做?
谢谢!
我认为你误解了一些事情:
首先: 当您使用 ->with
时,您会将 data
放入会话闪存中。您不会将其退还给客户。将结果放入闪存中可能不是您想要的。
return back ()->with('data', [
'role' => $role
]);
其次:如果打算在客户端使用onSuccess
来处理响应,则不能return back()
。您需要以传统的 AJAX 方式向客户端发送实际响应,如下所示:
return [
'data' => $role
];
第三: 我鼓励你避免使用 onSuccess
并像上面描述的那样返回 JSON,因为这违背了 Inertia 和我相信它更像是一个逃生舱口,适用于您无法以“惯性方式”做事的情况。