gpt4 book ai didi

laravel - Livewire、Laravel - 我可以从 Livewire 组件调用 Controller 'store' 方法吗?

转载 作者:行者123 更新时间:2023-12-05 06:56:26 25 4
gpt4 key购买 nike

我有一个带有“存储”方法的 Laravel Controller 。即存储(请求 $request)。

对于 View ,我想嵌入一个 livewire 组件,然后利用 livewire 组件方法中现有的 Controller “存储”方法(在幕后)。这可能吗?目前,我遇到了没有 Request 对象的问题,因为我不再从现有路由/ View (即 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行

我可以从存储方法中删除“Request $request”,但这会破坏标准的 Laravel POST/orders 路由。

我希望使用现有的 laravel 应用程序作为后端/API,并为演示添加 livewire 位。欢迎任何建议。

最佳答案

我认为从另一个类调用 Controller 函数不是最佳做法。如果您想要可重用性,我建议通过创建一个单独的类来重构代码,该类具有仅接受必需属性并保存记录的存储方法。然后你可以在多个地方使用这个方法。它也更容易测试。在看到你的存储方法之前很难给出准确的答案。

关于laravel - Livewire、Laravel - 我可以从 Livewire 组件调用 Controller 'store' 方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65138529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com