如何在Livewire组件中使用与Laravel Requests中完全相同的规则?我已经在Laravel中构建了Request,不想在Livewire中重新构建它。在Livewire中,我无法使用Laravel选项(例如\App\Rules)。解决此问题的最佳方法是什么,因为我们也通过控制器进行API调用?
efzxgjgh1#
您需要使用rules()作为方法而不是属性
rules()
use Illuminate\Validation\Rule; public function rules() { return [ 'name' => ['required', new MyRule()], 'content' => 'required|min:10' ]; }
ippsafx72#
我假设你的意思是Laravel表单请求。默认情况下this feature is not possible在Livewire中使用。但是,如果Livewire组件中有update方法,则可以执行以下操作。
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。
ny6fqffe3#
public function submit() { $this->validate((new StoreOrderRequest())->rules()); }
3条答案
按热度按时间efzxgjgh1#
您需要使用
rules()
作为方法而不是属性ippsafx72#
我假设你的意思是Laravel表单请求。默认情况下this feature is not possible在Livewire中使用。
但是,如果Livewire组件中有
update
方法,则可以执行以下操作。这样,您就可以在表单请求类中捆绑验证。
你也可以在Livewire组件的
rules()
方法中使用你的单个规则有关详细信息,请参阅Livewire Validation。
ny6fqffe3#