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 = []);
laravel使用总结(二)的更多相关文章
- Laravel 5.2 二、HTTP路由、创建控制器 与 资源路由
一.HTTP路由 所有路由都定义在 App\Providers\RouteServiceProvider 类载入的 app/Http/routes.php文件中. 1. 基本路由 简单的 Larave ...
- laravel框架总结(二) -- blade模板引擎
## 1.基本用法 ##情形1 $name = laravel5 <div class="title"> {{$name}} {{$name}}</div> ...
- 最适合入门的Laravel中级教程(二)用户认证
之前的初级教程主要是学习简单的增删改查: 接着的中级教程的目标是在初级教程的基础上能写出更复杂更健壮的程序: 我们先来学习 laravel 的用户认证功能: 在现代网站中基本都有用户系统: 而我们每开 ...
- laravel学习笔记(二)
路由 HTTP方法:支持http1.1中所有类型传参方式,get,post,put,delete,options,patch Route::get($url,$callback); 路由参数: Rou ...
- [Laravel框架学习二]:Laravel的CURD和查询构造器的CURD,以及聚合函数
public function index() { //return Member::getMember();//这是调用模型的方法 return view('lpc',[ 'age'=>18, ...
- laravel学习笔记二
代码编写提示工具
- Laravel入门及实践,快速上手ThinkSNS+二次开发
温馨提示: l 本文纯干货,文字和代码居多,且适合零基础Laravel学习者: l 本文会新建一个名为 blog 的 Laravel 程序,这是一个非常简单的博客. l 欢迎随时关注ThinkSNS ...
- 使用 Composer 安装 Laravel 框架
前言: 1. Composer 安装 Laravel 有两种方式: 第一种是通过 Composer 的 create-project 命令安装 Laravel 框架, 第二种是先通过 Composer ...
- Laravel 框架 基础(一)
Laravel 框架 laravel 5.2 在 5.1 基础上继续改进和优化,添加了许多新的功能特性:多认证驱动支持.隐式模型绑定.简化 Eloquent 全局作用域.可选择的认证脚手架.中间件组. ...
- 使用 Swoole 来加速 Laravel应用
Swoole 是为 PHP 开发的生产级异步编程框架. 他是一个纯 C 开发的扩展, 他允许 PHP 开发者在 PHP 中写 高性能,可扩展的并发 TCP, UDP, Unix socket, HTT ...
随机推荐
- Hexo - CNAME文件在每次部署后就没了
问题 一般我们会将Hexo博客搭建到Github上,如果在Github上为其配置一个自定义的域名时,会自动在项目仓库根目录下新添加一个CNAME文件.但是这里有个问题,如果将Hexo博客重新部署一遍后 ...
- HDU 1875(最小生成树)
#include <iostream> #include <algorithm> #include <cstdio> #include <cmath> ...
- php设计模式学习之单例模式
某些应用程序资源是独占的,因为有且只有一个此类型的资源.例如,通过数据库句柄到数据库的连接是独占的.您希望在应用程序中共享数据库句柄,因为在保持连接打开或关闭时,它是一种开销,在获取单个页面的过程中更 ...
- 通用全局CSS样式
PC全局样式 *{padding:0;margin:0;} div,dl,dt,dd,form,h1,h2,h3,h4,h5,h6,img,ol,ul,li,table,th,td,p,span,a{ ...
- oracle删除数据库表空间
步骤一: 删除user drop user ×× cascade 说明: 删除了user,只是删除了该user下的schema objects,是不会删除相应的tablespace的. 步骤二: 删 ...
- 前端之Html元素的分类
一.html元素可分为三大类:块元素.内联元素.可变元素 1.块元素: 常见块状元素:div,p,ul,ol,li,dl,dt,dd,form,hr,table,tr,td,h1-h6,filedse ...
- SpringBoot学习笔记-Chapter2(hello word)
开篇 第一次在博客园上写博客,初衷是想记录一下学习笔记,以往都是用笔去记录下学习笔记,现在来看在效率.检索速度上以及可可复制性都不好.作为一名Java开发人员 不会Spring Boot一定会被鄙视的 ...
- 【algorithm】二叉树的遍历
二叉树的遍历 二叉树用例 代码解析: public class BinaryTree { static class TreeNode { Integer val; TreeNode left; Tre ...
- [POJ1185][NOI2001]炮兵阵地 状压DP
题目链接:http://poj.org/problem?id=1185 很裸的状压,考虑对于一行用二进制储存每一种的状态,但是状态太多了做不了. 观察到有很多状态都是不合法的,于是我们预处理出合法的状 ...
- Azure 项目构建 – 构建稳定的直播和点播教学系统
本课程主要介绍了如何在 Azure 平台上快速构建和部署基于 Azure 虚拟机的点播和直播教学系统, 实践讲解如何使用 Azure 门户创建虚拟机,配置视频服务,连接 CDN 加速 等. 具体包括项 ...