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 = []);
原文地址:https://www.cnblogs.com/alin-qu/p/8419317.html