雄辩地插入表两次

时间:2019-08-20 17:07:23

标签: php laravel eloquent

在我的一生中,我无法弄清为什么Eloquent两次插入了我的表。

这是我的路线

Route::get('/tech_terminal/task/{user_id}/{id}/{equipment_type}/{component}','TaskController@complete_task');

还有控制器

public function complete_task($user_id, $id, $equipment_type, $component) {
    if ($id > 0) {
        $tech_task = TechTask::where([['user_id',$user_id],['id',$id]])->first();
    } else {
        $tech_task = new TechTask;
        $tech_task->user_id = $user_id;
        $tech_task->equipment_type = $equipment_type;
        $tech_task->component = $component;

        $tech_task_array = [];
        $tasks = Task::where([['user_id',$user_id],['equipment_type',$equipment_type],['component',$component]])->get();
        foreach($tasks as $task) {
            array_push($tech_task_array, (object)[
                'task' => $task->task,
                'input_type' => $task->input_type
            ]);
        }
        $tech_task->task_data = serialize($tech_task_array);
        $tech_task->save();
    }
    return view('tech_tasks')->with('task_list',$tech_task_array)->with('id',$tech_task->id);
}

如果我更改了路由,它仍然会发生。如果我更改插入内容以保存预定义的'1'。...仍然可以!

这与我的名字空间有关吗?这是我唯一不了解的部分。我不知道该怎么办。

use App\Task;
use App\TechTask;

谢谢!

1 个答案:

答案 0 :(得分:-1)

您两次单击“提交”按钮是吗?使用javascript处理按钮是否被点击以及页面仍未加载禁用按钮