Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php laravel 5.1中的代码优化?_Php_Angularjs_Laravel_Optimization_Laravel 5 - Fatal编程技术网

Php laravel 5.1中的代码优化?

Php laravel 5.1中的代码优化?,php,angularjs,laravel,optimization,laravel-5,Php,Angularjs,Laravel,Optimization,Laravel 5,我正在开发一次考勤系统,在记录考勤时,我必须进行批量插入。我使用以下代码,它工作正常 foreach ($request->selectedEmployees as $employee) { foreach ($employee['attendances'] as $att) { $att['created_by'] = Auth::id(); $attendaces [] = new Attendance($att);

我正在开发一次考勤系统,在记录考勤时,我必须进行批量插入。我使用以下代码,它工作正常

foreach ($request->selectedEmployees as $employee) {
        foreach ($employee['attendances'] as $att) {
            $att['created_by'] = Auth::id();
            $attendaces [] = new Attendance($att);
        }
        Employee::findOrFail($employee['id'])->attendances()
                ->saveMany($attendaces);
    }
我的输入结构

[
    "selectedEmployees": [
        {
            "id": 119,
             "attendances": [
            {
                "id": "119_01",
                "employees_id": 119,
                "type": 1,
                "date": "01-07-2015",
                "signin": "9.00",
                "signout": "6.00",
                "lunch_in_time": "1.30",
                "lunch_out_time": "2.00",
                "add_in_time": "",
                "add_out_time": "",
                "note": ""
            }
           ]   
      }
]
我想优化我的代码

  • 避免在循环中插入,并进行批量插入
  • 将插入过程作为后端作为线程运行,并在完成后通知用户(我使用的是angularJS前端)
  • 这些优化在laravel5.1中是否可行?是否有其他优化技术

  • 您必须了解,即使使用
    saveMany()
    方法,Laravel也会分别保存每一行。因此,即使您试图以某种方式对算法进行优化,算法的复杂性也将是O(n)。而且还不错
  • 您可以使用assync ajax请求。它不会阻止用户的页面,完成后,您将向用户显示通知。或者你可以使用机械装置。它更复杂,但可以说会使您的代码更优雅
  • 您必须了解,即使使用
    saveMany()
    方法,Laravel也会分别保存每一行。因此,即使您试图以某种方式对算法进行优化,算法的复杂性也将是O(n)。而且还不错
  • 您可以使用assync ajax请求。它不会阻止用户的页面,完成后,您将向用户显示通知。或者你可以使用机械装置。它更复杂,但可以说会使您的代码更优雅

  • 拉雷维尔的
    队列如何?@MuhammedShihabuddeen广播机制直接通过队列工作。这就是为什么我说它更可取,但更复杂的解决方案。谢谢你的评论。现在我已经写了一个
    job class
    ,工作很好。现在我正在努力理解广播机制。如果你不介意的话,那么你能给我一个关于
    队列
    作业
    广播机制
    队列呢?@Muhammedshihabudden广播机制通过队列工作。这就是为什么我说它更可取,但更复杂的解决方案。谢谢你的评论。现在我已经写了一个
    job class
    ,工作很好。现在我正在努力理解广播机制。如果你不介意的话,那么你能给我一个关于
    队列
    作业
    广播机制