php 如何在Livewire组件中使用Laravel请求

m3eecexj  于 2022-11-21  发布在  PHP
关注(0)|答案(3)|浏览(125)

如何在Livewire组件中使用与Laravel Requests中完全相同的规则?我已经在Laravel中构建了Request,不想在Livewire中重新构建它。在Livewire中,我无法使用Laravel选项(例如\App\Rules)。解决此问题的最佳方法是什么,因为我们也通过控制器进行API调用?

efzxgjgh

efzxgjgh1#

您需要使用rules()作为方法而不是属性

use Illuminate\Validation\Rule;

public function rules()
{
    return [
        'name' => ['required', new MyRule()],
        'content' => 'required|min:10'
    ];
}
ippsafx7

ippsafx72#

我假设你的意思是Laravel表单请求。默认情况下this feature is not possible在Livewire中使用。
但是,如果Livewire组件中有update方法,则可以执行以下操作。

public function update(ProfileUpdateRequest $request)
{
    $this->validate($request->rules());

    // ...
}

这样,您就可以在表单请求类中捆绑验证。
你也可以在Livewire组件的rules()方法中使用你的单个规则

use App\Rules\CustomRule;

//.. other stuff

public function rules()
{
    return [
        'name' => ['required', new CustomRule()],
        'content' => 'required|min:10'
    ];
}

有关详细信息,请参阅Livewire Validation

ny6fqffe

ny6fqffe3#

public function submit()
{
    $this->validate((new StoreOrderRequest())->rules());
}

相关问题