我有一个 livewire 组件:
class Cards extends Component
{
use WithFileUploads;
public $question;
public $answer;
public $questionImage;
public $questionImageOrigin;
public $answerImage;
public $answerImageOrigin;
public $questionAudio;
public $questionAudioOrigin;
public $answerAudio;
public $answerAudioOrigin;
public function render()
{
return view('livewire.cards');
}
现在我想创建并验证一张卡:
public function createCard()
{
$this->validate([
'answerImage' => 'nullable|image|max:3000',
'questionImage' => 'nullable|image|max:3000',
'question' => 'required_without_all: questionImage, questionAudio',
'answer' => 'required_without: answerImage, answerAudio',
'questionAudio' => 'nullable|file|mimeTypes:audio/mpeg|max:3000',
'answerAudio' => 'nullable|file|mimeTypes:audio/mpeg|max:3000'
]);
但这不起作用。 当我插入某些内容(图像或音频)时,出现错误:
The answer field is required when answer image / answer audio is not present.
所以 - 我想这不起作用。还是我错了? 也许我必须使用另一种语法? 但我在文档中找不到任何内容。
请帮忙。
最佳答案
您已在规则中添加空格
'answer' => 'required_without: answerImage, answerAudio',
改成这样
'answer' => 'required_without:answerImage,answerAudio',
还有
'question' => 'required_without_all: questionImage, questionAudio',
到此
'question' => 'required_without_all:questionImage,questionAudio',
关于php - Laravel Livewire 验证 - required_without_all 和 required_without 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63179984/