laravel使用总结(二)

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 = []);

转载于:https://www.cnblogs.com/alin-qu/p/8419317.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值