zoukankan      html  css  js  c++  java
  • laravel使用总结(二)

    Mysql Eloquent 模型

    新建Model 对应 表前缀 + 类名称 + s

    namespace App;
    use IlluminateDatabaseEloquentModel;
    class User extends Model{
        //对应 表前缀 + members
    }
    

    获取所有记录

    $users = Member::all();
    

    根据主键获取一条记录

    //默认返回Obj类型数据
    $user = Member::find(1);
    
    //返回Array类型数据
    $member = AppMember::find(10)->toArray();
    
    //返回Json类型数据
    $member = AppMember::find(10)->toJson();
    
    //统计
    $member = AppMember::whereRaw('id < 25 and badges = 20')->count();
    

    复合查询1

    插入原生sql

    $db_raw_str = "
            sum(scan_sum) AS scan_sum,
            sum(scan_count) AS scan_count,
            sum(new_user) AS new_user_count,
            sum(active_user) AS active_user_count
        ";
    ->select(DB::raw($db_raw_str))
    

    构造where or条件

    $values = ->where(function ($query)use ($search_value) {
        $query->where('key1','LIKE',"%{$search_value}%")
            ->orWhere('key2','LIKE',"%{$search_value}%")
            ->orWhere('key3','LIKE',"%{$search_value}%");
    });
    

    偏移

    ->offset($offset)
    ->limit($pagesize);
    

    转换成Array数组

    ->toArray();
    

    构造where与条件

    $where_condition = array(
        ['company_id','=',$company_id],
        ['report_date','>=',$start_at],
        ['report_date','<=',$end_at],
    );
    
    ->where($where_condition);
    

    复合查询2

    $member = AppMember::where('id','=',4)
        ->where('email','=','sdra.m16@163.co')
        ->where('badges','=',3)
        ->select('name','email','phone','badges')
        ->orwhere('phone','=','18915581119')
        ->orWhere(function($query){
            $query->where('badges','>',10)
                ->whereNotNull('create_at');
        })
        ->groupBy('phone')
        ->orderBy('update_at', 'desc')
        ->limit(3)
        ->get();
        
    //对应sql语句
    SELECT
    	`name`,
    	`email`,
    	`phone`,
    	`badges`
    FROM
    	`crm_members`
    WHERE
    	`id` = 4
    AND `email` = 'sdra.m16@163.com'
    AND `badges` = 3
    OR `phone` = '18915581119'
    OR (
    	`badges` > 10
    	AND `create_at` IS NOT NULL
    )
    GROUP BY
    	`phone`
    ORDER BY
    	`update_at` DESC
    LIMIT 3   
    

    插入数据 updated_at created_at 为默认自动添加的字段

    $user = new AppUser();
    
    $user->name = 'guolin';
    $user->email = 'guolin@163.com';
    $user->password = '1111111';
    
    $rs = $user->save();
    //返回bool(true)表示插入成功
    
    //对应sql语句
    INSERT INTO `crm_users` (
    	`name`,
    	`email`,
    	`password`,
    	`updated_at`,
    	`created_at`
    )
    VALUES
    	(
    		'guolin',
    		'guolin@163.com',
    		'1111111',
    		'2018-02-01 14:33:21',
    		'2018-02-01 14:33:21'
    	)
    

    更新数据

    $rs = AppMember::where('id', '<', 10)
            ->update(array('email' => 'guolin@163.com','level'=>2));
    //返回受影响的行数
    
    //对应的sql语句
    UPDATE `crm_members`
    SET `email` = 'guolin@163.com',
     `level` = 2,
     `updated_at` = '2017-03-01 14:51:20'
    WHERE
    	`id` < 10
    

    删除数据

    //第一种方式
    $rs = AppUser::destroy(array(1, 2));
    //返回受影响的行数
    
    //对应的sql
    delete from `crm_users` where `id` = 1
    delete from `crm_users` where `id` = 2
    
    //第二种方式
    $rs = AppUser::where('id', '>', 1)->delete();
    //返回受影响的行数
    delete from `crm_users` where `id` > 1
    

    Session

    Session::get('user');
    Session::set('test','test value');
    Session::remove('user');
    Session::clear();
    Session::all();
    

    返回数据

    返回json文件

    $return_value = array(
        'code'      =>config('statuscode.success'),
        'message'   =>'get actBasic success',
        'result'    =>array(
            'items' =>$value['items']
        ),
        'page'      =>array(
            'current'   =>$value['current'],
            'pagesize'  =>$value['pagesize'],
            'total'     =>$value['total'],
        )
    );
    
    return response()->json($return_value);
    

    返回jsonp文件

    response()->jsonp($callback, $data = []);
    
  • 相关阅读:
    .Net Mvc学习——ASP.NET MVC中常用的ActionResult类型
    Html+Ajax+Webservice 实现文件跨域上传
    H5移动端实现图片上传
    Jquery中$("").事件()和$("").on("事件","指定的元素",function(){});的区别(jQuery动态绑定事件)
    第四周 利用嵌入式汇编调用系统调用
    Junit的简单使用
    第三周 内核调试
    checkstyle findbugs以及sourcemonitor的使用
    第二周 内核进程调度
    重新打理博客
  • 原文地址:https://www.cnblogs.com/alin-qu/p/8419317.html
Copyright © 2011-2022 走看看