2

我有一个 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.

所以 - 我想这是行不通的。还是我错了?也许我必须使用另一种语法?但我在文档中一无所获。

请帮忙。

4

1 回答 1

2

您在规则中添加了空格

'answer' => 'required_without: answerImage, answerAudio',

改成这个

'answer' => 'required_without:answerImage,answerAudio',

'question' => 'required_without_all: questionImage, questionAudio',

对此

'question' => 'required_without_all:questionImage,questionAudio',
于 2020-07-30T19:26:51.297 回答