Php Laravel处理多个查询和连接的最佳实践
我需要一个代码建议 基本上,我正在开发一个系统,它需要数据库中的大量连接和关系。目前在Laravel中,我正在应用程序中使用查询生成器进行数据库查询 目前,我在数据库中有一个查询示例Php Laravel处理多个查询和连接的最佳实践,php,laravel,Php,Laravel,我需要一个代码建议 基本上,我正在开发一个系统,它需要数据库中的大量连接和关系。目前在Laravel中,我正在应用程序中使用查询生成器进行数据库查询 目前,我在数据库中有一个查询示例 $approved = DB::table('employee_overtimes as eo') ->select('eo.id as id', 'eo.employee_id as eo_employee_id', 'eo.overtime_date', 'eo.time_in'
$approved = DB::table('employee_overtimes as eo')
->select('eo.id as id', 'eo.employee_id as eo_employee_id', 'eo.overtime_date', 'eo.time_in', 'eo.time_out', 'eo.approver_id', 'eo.remarks', 'eo.status',
'firstname','lastname','employee.employee_no', 'employee.id as employee_id', 'eo.created_at')
->join('employee' , 'employee.id', '=', 'eo.employee_id')
->where('eo.status', '=', 'Approved')
->orderByDesc('eo.created_at')
->orderBy('lastname', 'ASC')
->get();
有谁能提出更好的方法来处理这类查询吗?因为它在我的控制器中变得重复 使用querybuilder而不是Elotent是可以的,因为它更快,而且有时Elotent无法处理复杂的查询。另外,避免使用
DB::raw
,因为它易于sql注入。请参阅本文
为了避免重复代码,必须创建自定义函数或库,然后可以在每个控制器中使用它
让我给你看一些比较
雄辩的ORM(执行时间:1.41秒,执行的查询:1000)
查询生成器(执行时间:938毫秒,执行的查询:1000)
现在,这证明查询生成器比雄辩快0.5秒。看起来您需要使用关系。请参阅。很抱歉,是否仍然可以使用laravel关系创建3个或更多表?您可以根据需要创建任意多个关系或联接。你的选择是基于你的代码,真的。如果代码变得重复,请创建库或服务,并从控制器调用它,而不是复制粘贴它。如果只有几个参数发生变化,只需确保您的全局函数能够适应多种情况。我每天做很多的加入,没有什么问题。我更喜欢它们而不是6种关系,因为我的问题是1而不是6。这与这个问题有什么关系?我刚刚回答了他我的建议。我认为他的方法很好,因为他使用的是querybuilder。我还回答了他对重复代码问题的担忧,先生。
<?php
Route::get("test",function(){
for($i=0;$i<1000;$i++){
$t=new Country();
$t->label=$i." Row";
$t->save();
}
});
?>
<?php
Route::get("test",function(){
for($i=0;$i<1000;$i++){
DB::table("countries")->insert(["label"=>$i." Row"]);
}
});
?>