使用 Livewire 时 Laravel 审核不起作用

问题描述

Q A
框架 Laravel
框架版本 8.0
包版本 10.0
PHP 版本 7.4
实际行为

使用 Livewire 时,通过它触发的任何事件,例如创建。审核未注册该事件。

预期行为

创建一个新条目,例如通过 Livewire 获得的线索,应该被审计捕获并相应地添加

重现步骤

填写表单以创建潜在客户后,将调用代码

        $validated = $this->validate();

        //Manually set defaults
        $validated['lead_type'] = 'Manual';
        $validated['is_approved'] = 1;
        $validated['rating'] = $this->rating;

        if ($validated['lead_temp'] == 'Temp') {
            $validated['lead_temp'] = 'Default';
        }

        if ($validated['lead_status_id'] == 0) {
            $validated['lead_status_id'] = '1'; //default set to unassigned
        }

        //Manually set IDs
        $validated['company_id'] = auth()->user()->company_id;
        $validated['flag_alert_id'] = 1;
        $validated['campaign_id'] = 1;
        $validated['quote_id'] = 1;
        $validated['quote_data_id'] = 1;
        $validated['form_id'] = 1;
        $validated['form_data_id'] = 1;
        $validated['number_id'] = 1;
        $validated['email_id'] = 1;

        if(!empty($validated['user_id']) || $validated['user_id'] == 0) {
            $validated['user_id'] = auth()->user()->id;
        }
        else {
            $validated['user_id'] = $this->user_id;
        }

        $leadID = Lead::create($validated)->id;

        if(!empty($this->products)){
            $this->linkProductsToLeads($leadID);
        }

        if(!empty($this->files)){
            $this->uploadFiles($leadID);
        }

        $this->resetForm();

        session()->flash('snack-success','Lead successfully created!');
        $this->dispatchbrowserEvent('success-shown');
    }

其中“$leadID = Lead::create($validated)->id”不会出现在数据库中。

可能的解决方

我不知道如何解决这个问题,在这种情况下,当通过控制器使用基于 Laravel 的正常创建时,LeadsController 会显示在审计表中。通过 JS Ajax 并命中端点的系统的其他部分工作得非常好,似乎是 Livewire 特定的问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)