關于Laravel ORM操作的詳解

下面由laravel教程欄目給大家介紹詳解laravel orm操作,希望對需要的朋友有所幫助!

1、laravel獲取最后一條sql語句和傳入的值:

????public?function?getOrderDetail($orderId){  ????????DB::connection()-&gt;enableQueryLog();?//?開啟查詢日志??  ????????$ordeList?=?OrderItem::where('order_id',$orderId) ????????????-&gt;get()-&gt;toArray();????????$queries?=?DB::getQueryLog();?//?獲取查詢日志??  ????????echo?"<pre class="brush:php;toolbar:false">";             print_r($queries);            echo PHP_EOL;             print_r($ordeList);        echo "

“;

直接上圖:

關于Laravel ORM操作的詳解

取出部分數據:

????public?function?getOrderDetail($uid,$orderId){ ????????$user?=?$this-&gt;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) ????????????-&gt;?orderBy('create_time','desc') ????????????-&gt;get($columns)-&gt;toArray();????????echo?"<pre class="brush:php;toolbar:false">";             print_r($ordeList);        echo "

“;????????exit; ????}

關于Laravel ORM操作的詳解

不存在就創建,存在就更新:

Model::updateOrCreate( ???['primary_key'?=&gt;?8], ???['field'?=&gt;?'value',?'another_field'?=&gt;?'another?value'] );

Laravel子查詢,多條件判斷:

????public?function?getCourseProgress($uid,$levelId=0,$lessonId=0,$type=0,$page=0) ????{ ????????//檢測用戶合法性 ????????$user?=?$this-&gt;check_user($uid);????????//當前頁數 ????????$page?=?$page&gt;0?$page:0;????????//每頁顯示數量 ????????$perPage?=?config('bcc.per_page');????????//顯示字段 ????????$columns?=?['*'];????????#課程學習進度信息 ????????$result?=?LessonProgress::where('customer_id',$uid) ????????????-&gt;where(function($query)?use?($type){ ????????????????if($type)?$query-&gt;where('source_type',$type); ????????????}) ????????????-&gt;where(function($query)?use?($levelId,$lessonId){ ????????????????if($levelId?&amp;&amp;?$lessonId)?{????????????????????$query-&gt;where(['level_id'=&gt;$levelId,'lesson_id'=&gt;$lessonId]); ????????????????}elseif($levelId){????????????????????$query-&gt;where('level_id',?$levelId); ????????????????} ????????????})-&gt;get();????????????//-&gt;paginate($perPage,$columns,$pageName='',$page);  ????????if($result-&gt;isEmpty())?return?$this-&gt;responseSuccess([],'No?relevant?information',20000);????????return?$this-&gt;responseCollection($result,new?CourseProgresstransformer); ????}

Laravel運行復雜的原生語句:

????//?聲母韻母分兩類 ????$data=Pronounce::selectRaw('group_concat(`letter`)?as?letters') ????-&gt;groupBy('pronounce_type') ????-&gt;get() ????-&gt;toArray();

selectRaw里面可以直接寫sql子句

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享