关于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 分享