Laravel Errorbag​​ 无法在 Blade 组件内工作

标签 laravel laravel-blade laravel-7 laravel-livewire

我有一个 Laravel Livewire 组件,其中也包含了一个 Blade 组件,如下所示

<div>
    <div class="card-header">
        <div>{{ $quiz->name }}</div>
        <x-create-question-modal :state="$modalQuestionState" :question="$question"/>
    </div>

    @foreach($quiz->questions as $question)
    <div class="card-body">
        <div class="card-title">
            {{ $question->question }}
        </div>
        @foreach($question->choices as $choice)
            <div class="card-text">
                {{ $choice->name }}
            </div>
        @endforeach
    </div>
        <hr>
    @endforeach
</div>

这是我的 Blade 组件

<div>
    <div>
        <div wire:click="modalCreateQuestionToggle">Create New Quiz</div>
    </div>

    {{--  Create Quiz Modal --}}
    <div class="modal @if($state) d-block @endif" tabindex="-1" role="dialog">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title">Create New Quiz</h5>
                    <button wire:click="modalCreateQuestionToggle" type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <form wire:submit.prevent="store">
                    <div class="modal-body">
                        <input type="text" wire:model="question">
                        @error('question') <span class="error alert-danger">{{ $message }}</span> @enderror
                    </div>
                    <div class="modal-footer">
                        <button type="submit" class="btn btn-primary">Create</button>
                    </div>
                </form>

            </div>
        </div>
    </div>

</div>

这是我在 Livewire 类中的 store 方法,

    public function store() {
        //
        $this->validate([
            'question' => 'required|min:5',
        ]);

        Questions::create([
            'question' => $this->question,
            'quiz_id' => $this->quiz->id
        ]);
        $this->modalQuestionState = !$this->modalQuestionState;
        $this->question = null;
    }

调用商店时,验证失败,但由于某种原因,它没有在我的 Blade 组件中呈现。

这就是livewire网络的输出

errorBag: {question: ["The question must be at least 5 characters."]}
question: ["The question must be at least 5 characters."]

最佳答案

只需将此部分放在您的 livewire 组件上,而不是完整的模态中。我有同样的问题,通过这样做解决了。

应该能解决你的问题。让我知道。

      <div>
           <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title">Create New Quiz</h5>
                    <button wire:click="modalCreateQuestionToggle" type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <form wire:submit.prevent="store">
                    <div class="modal-body">
                        <input type="text" wire:model="question">
                        @error('question') <span class="error alert-danger">{{ $message }}</span> @enderror
                    </div>
                    <div class="modal-footer">
                        <button type="submit" class="btn btn-primary">Create</button>
                    </div>
                </form>

            </div>
      </div>

这是我在 liveware 组件中的模态:

https://ibb.co/KFWtFzP

这是我的 Blade :

https://ibb.co/v156XVT

说明:这是因为当您的组件刷新时,livewire 会为您提供刷新的 View 及其更改。在刷新的组件中,模式不再被触发打开。所以你没有得到改变。因此,当您使用模态时,请确保在 livewire 组件中使用模态内容,以便打开的模态保持 open 状态,然后其中的内容就会刷新。希望我向你说清楚了。如果您还不够清楚,请告诉我。

关于Laravel Errorbag​​ 无法在 Blade 组件内工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60588370/

相关文章:

php - Laravel 中批量分配的风险

amazon-web-services - 在 EC2 实例上安装 Laravel

laravel - 未定义命令 "serve"(Lumen-Laravel)

php - 使用 Eloquent ORM 进行 CREATE 操作显示 500 内部服务器错误

ffmpeg - laravel 7 ffmpeg 编码失败

php - 如何在现有的默认身份验证上使用 Laravel 创建自定义身份验证

php - 覆盖 laravel Blade 模板中的部分抛出 undefined variable 错误

php - 如何在 Laravel Blade 模板引擎中迭代二维数组

php - Laravel - 使用@section 动态设置元标签

php - 如何在 Laravel 7 中将注册服务单例传递给另一个注册服务的构造函数?