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 ...
随机推荐
- 为GitHub项目添加协议
解决方法 如果一开始在GitHub上创建仓库时没有添加协议,可以用以下方式来重新添加相关的协议: 打开GitHub上的某个仓库,点击Create new file: 在新建文件的页面上,输入文件名LI ...
- STP-2-三个选择
1.选择根交换机 2.确定根端口 3.确定指定端口 1.选择根交换机 stp中只有一台交换机能成为根(Root),每台交换机按自己的STP逻辑,先发一个hello称自己为根,如果收到了比自 ...
- C# 面向对象之封装
封装是指将类的内部数据隐藏起来不让对象实例直接对其操作,C#中提供了属性机制来对类内部的状态进行操作. 在C#中封装可以通过public.private.protected和internal等关键字来 ...
- 从navicat for mysql导出数据库语句时应该加上的两条语句
为了不引起编码问题,一般在从navict for mysql导出一个数据库时在文件最前面添加这2句语句: CREATE DATABASE IF NOT EXISTS `` default charac ...
- vue echarts 大小自适应
窗口大小时候 ,echarts图自适应 在创建图表的方法中直接,用resize方法 let myChart=this.$refs.myChart; let mainChart = echarts.in ...
- 5、两个栈实现队列------------>剑指offer系列
题目 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 思路 栈1: 用于入队列存储 栈2: 出队列时将栈1的数据依次出栈,并入栈到栈2中 栈2出栈即栈1的底部数据 ...
- html的meta总结
引子 之前的我的博客中对于meta有个介绍,例如:http://www.haorooms.com/post/liulanq_think_ie 浏览器安全性想到的这篇文章,中间介绍了meta下面IE的一 ...
- 【Web应用-网络连接】关于 Azure Web 应用 4 分钟空闲连接的限制
Azure Web 应用后台在处理耗时较长的请求时,并且在此期间,客户端和 Azure Web 应用没有数据交互,即 TCP 连接一直处于空闲状态,此种情况超过 4 分钟后,Azure Web 应用会 ...
- 【Web应用-网络连接】Azure Web 应用对外连接数上限分析
在 Azure Web 应用中发起大量外部连接操作时,需要考虑已经建立了多少外部连接.当超过最大对外连接数时,Azure Web 应用将会产生套接字异常.Azure Web 应用对于各个级别的实例,对 ...
- mybatis 部署日志
<!-- 打印查询语句 --> <setting name="logImpl" value="STDOUT_LOGGING" /> &l ...