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 ...
随机推荐
- 使用top观察一进程的cpu历史占用情况
#!/bin/shtop -b -n 1 -p 1975| tail -3 >>process1975.log 搞了时间节点,做个定时任务什么的就ok了
- C# 委托之把委托从委托链(多播委托)移除
运用“-”运算符将委托从委托链移除 class HelloWorld { //定义委托类型 delegate void DelegationChain(); static void Main(stri ...
- 洛谷P3603 || bzoj 4763 雪辉 && bzoj4812: [Ynoi2017]由乃打扑克
https://www.luogu.org/problemnew/show/P3603 https://www.lydsy.com/JudgeOnline/problem.php?id=4763 就是 ...
- Executor等系列概念介绍
这里对几个常见的的名词进行介绍 Executor 这是个接口,只声明了一个方法—— public interface Executor { void execute(Runnable command) ...
- 使用em和rem替代px
rem是指根元素的字体大小,默认情况下html的字体大小为:16px=1rem.而em是相对单位,是基于它的祖先元素计算的. 如果我们不指定html和body的字体大小,要得到12px的rem需要这样 ...
- QlikView入门
1.windows x64下载地址: http://d1cf4w4kkla6tb.cloudfront.net/qlikview/11.20/11718/_MSI/QlikViewDesktop_x6 ...
- WCF中的AsyncPattern
WCF中的AsyncPattern (系列博文源自 http://pfelix.wordpress.com/,由笔者翻译并整理,转载请注明) 在wcf 的 service contract中, 服 ...
- VS2015 VB.Net利用QrCodeNet生成QR Code
Step by step Create QR Code with QrCodeNet Step.1 新建項目 Step.2 下載QrCodeNet代碼,解壓\QrCodeNet\sourceCode\ ...
- localStorage 和 sessionStorage的区别
存储对象: 在主流浏览器中,添加了html5 Web Storage API 的接口,storage是一个存储对象,它包括会话存储(session storage)或本地存储(local stora ...
- Java基础之面向对象
面向对象 1.面向对象思想: (1)概述:面向对象是相对于面向过程而言的,面向过程强调的是功能,面向对象强调的是将功能封装进对象,强调具备功能的对象: (2)思想特点: ...