laravel - Livewire,Laravel - 我可以从 Livewire 组件调用控制器“存储”方法吗?
问题描述
我有一个带有“存储”方法的 Laravel 控制器。即商店(请求$请求)。
对于视图,我想嵌入一个 livewire 组件,然后从 livewire 组件方法中利用现有的控制器“存储”方法(在幕后)。这可能吗?目前,我遇到了没有 Request 对象的问题,因为我不再从现有的路由/视图(即 POST /orders)进行调用。
public function oms_order()
// this method provides the POST /orders leveraging
// Controllers\OrderController@store
{
$this->refId = app('App\Http\Controllers\OrderController')->store($this->jsonOrder);
}
传递给 App\Http\Controllers\OrderController::store() 的参数 1 必须是 Illuminate\Http\Request 的实例,给定 null,在 D:\xampp\htdocs\jade\livewire_hpp\app\Http\Livewire\Oms 中调用.php 在第 26 行
我可以从 store 方法中删除“Request $request”,但这会破坏标准的 Laravel POST /orders 路由。
我希望使用现有的 laravel 应用程序作为后端/API,并添加 livewire 位进行演示。欢迎任何建议。
解决方案
我认为从另一个类调用控制器函数不是最佳实践。如果您想要可重用性,我建议通过使用 store 方法创建一个单独的类来重构代码,该方法只接受必需的属性并保存记录。然后,您可以在多个地方使用此方法。也更容易测试。在看到您的商店方法之前很难给出确切的答案。
推荐阅读
- excel - 如何通过激活另一个工作簿中的宏来更改工作簿的全局变量
- c - 在C中访问多维字符串数组的元素
- javascript - SAPUI5 StandardListItem 按选定排序
- r - ggplot中标题行的水平调整不等
- jquery - 处理 jQuery datepicker 元素上的任何事件
- apache - 不使用 .htaccess 自动从 http 重定向到 https
- sql - 在位于 where 子句的 IN 子句中搜索多个值
- javascript - 如何在客户端 onclick 上检查任何未保存的更改?
- javascript - JavaScript 过滤数组和映射
- angular - 如何在共享我的角度网站的链接时显示图像缩略图