Mysql Eloquent 模型
新建Model 对应 表前缀 + 类名称 + s
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model{
//对应 表前缀 + members
}
获取所有记录
$users = Member::all();
根据主键获取一条记录
//默认返回Obj类型数据
$user = Member::find(1);
//返回Array类型数据
$member = App\Member::find(10)->toArray();
//返回Json类型数据
$member = App\Member::find(10)->toJson();
//统计
$member = App\Member::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 = App\Member::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 App\User();
$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 = App\Member::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 = App\User::destroy(array(1, 2));
//返回受影响的行数
//对应的sql
delete from `crm_users` where `id` = 1
delete from `crm_users` where `id` = 2
//第二种方式
$rs = App\User::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 = []);