最新消息: 关于Git&GitHub 版本控制你了解多少?
您现在的位置是:群英 > 开发技术 > PHP语言 >
Laravel ORM操作流程步骤分享
PHP中文网发表于 2021-05-20 17:27 次浏览
下面由群英网络给大家介绍详解Laravel ORM操作,希望对需要的朋友有所帮助!

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操作的详解的详细内容,更多请关注群英网络其它相关文章!

标签:laravel教程
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
相关信息推荐