1、laravel获取最后一条sql语句和传入的值: public function getorderdetail($orderid){ \db::connection()->enablequerylog(); // 开启查询日志 $ordelist = orderitem::where('order_id',$orderid) ->get()->toarray(); $queries = \db::getquerylog(); // 获取查询日志 echo "<pre>"; print_r($queries); echo php_eol; print_r($ordelist); echo "</pre>";
直接上图:
取出部分数据: public function getorderdetail($uid,$orderid){ $user = $this->check_user($uid); $columns = ['id', 'order_id', 'item_id', 'item_name', 'item_price', 'original_price', 'buy_num', 'real_num', 'cancel_num', 'status', 'create_time']; $ordelist = orderitem::where('order_id',$orderid) -> orderby('create_time','desc') ->get($columns)->toarray(); echo "<pre>"; print_r($ordelist); echo "</pre>"; exit; }
不存在就创建,存在就更新:model::updateorcreate( ['primary_key' => 8], ['field' => 'value', 'another_field' => 'another value']);
laravel子查询,多条件判断:
public function getcourseprogress($uid,$levelid=0,$lessonid=0,$type=0,$page=0) { //检测用户合法性 $user = $this->check_user($uid); //当前页数 $page = $page>0?$page:0; //每页显示数量 $perpage = config('bcc.per_page'); //显示字段 $columns = ['*']; #课程学习进度信息 $result = lessonprogress::where('customer_id',$uid) ->where(function($query) use ($type){ if($type) $query->where('source_type',$type); }) ->where(function($query) use ($levelid,$lessonid){ if($levelid && $lessonid) { $query->where(['level_id'=>$levelid,'lesson_id'=>$lessonid]); }elseif($levelid){ $query->where('level_id', $levelid); } })->get(); //->paginate($perpage,$columns,$pagename='',$page); if($result->isempty()) return $this->responsesuccess([],'no relevant information',20000); return $this->responsecollection($result,new courseprogresstransformer); }
laravel运行复杂的原生语句:
// 声母韵母分两类 $data=pronounce::selectraw('group_concat(`letter`) as letters') ->groupby('pronounce_type') ->get() ->toarray();
selectraw里面可以直接写sql子句
以上就是关于laravel orm操作的详解的详细内容。
