例如:数据库有个叫做xm_gg的表主键是id,我们设置表前缀为xm_,则模型名为GgModel
,模型的路径应在/app/Http/Model
,因为我封装了模块Modules:shop,所以模型路径为/app/Modules/Shop/Models/GgModel.php
;
/**
* gg模型
*/
namespace App\Modules\Shop\Models;
class GgModel extends Model
{
//真实表名
protected $table = 'gg';
//数据表的主键 默认id
protected $primaryKey = 'id';
//模型日期列的存储格式 U 使用时间戳作为时间类型
protected $dateFormat = 'U';
// 是否自动添加时间戳
// public $timestamps = false;
//可以被批量赋值的属性
protected $fillable = ['name'];
//不想被赋值的属性数组
//protected $guarded = ['price'];
}
// 查询第一条数据 返回数据对象
$data = GgModel::first();
// 获取总数据量 返回数字
$data = GgModel::count();
// 获取id为8的数据 返回数据对象
$data = GgModel::find(8);
// 获取id为8的数据 返回数组
$data = GgModel::find(8)->toArray();
//获取全部数据 返回数组
$data = GgModel::get()->toArray();
//获取全部数据 返回数组
$data = GgModel::all()->toArray();
//获取表内某个字段的值 返回数组
$data = GgModel::lists('name')->toArray();
//获取表内多个字段的值 返回二维数组 二维数组的键名为:id,键值为name
//注:不可使用有重复值的作为键名
$data = GgModel::lists('name','id')->toArray();
$data = GgModel::lists('name','created_at')->toArray();
$data = GgModel::lists('id','created_at')->toArray();
$data = GgModel::lists('id','name')->toArray();
// 聚合函数
// 队列构建器还提供了很多聚合方法,比如 count , max , min , avg , 和 sum ,你可以在构造查询之后调用这些方法:
$count = GgModel::count();
$max_id = GgModel::max('id');
dd($data);
1.指定字段(select)
//select 查询什么字段
$data = GgModel::select('id', 'name as gg_name')->get()->toArray();
2.返回不重复数据(distinct)
// 返回不重复数据
$data = GgModel::select('name')->distinct()->get()->toArray();
3.返回不重复数据(join)
$users = GgModel::leftJoin('gg_info', 'gg.id', '=', 'gg_info.gg_id')->get();
4.查询条件(where)
//查询name == gg4 的数据
$users = GgModel::where('name', '=', 'gg4')->get();
$users = GgModel::where('name', 'gg4')->get();
$users = GgModel::where('id', '>=', '4')->get();
//模糊查找 like
$data = GgModel::where('name', 'like', '%gg%')->get()->toArray();
//in定值查找 in
$data = GgModel::whereIn('id', [7,8])->get()->toArray();
$data = GgModel::whereNotIn('id', [7,8])->get()->toArray();
//区间查找 whereBetween 1~100的数据
$data = GgModel::whereBetween('id', [1,100])->get()->toArray();
$data = GgModel::whereNotBetween('id', [1,100])->get()->toArray();
//空值查找 whereNull 查询name为空的数据
$data = GgModel::whereNull('name')->get()->toArray();
$data = GgModel::whereNotNull('name')->get()->toArray();
5.排序(order)
$data = GgModel::orderBy('id','desc')->get()->toArray();
6.分组(groupBy)
$data = GgModel::groupBy('price')->having('price', '>', '100')->get()->toArray();
//havingRaw 可以使用原生字符串作为 having 子句
$data = GgModel::select('department', DB::raw('SUM(price) as total_sales'))->groupBy('department')->havingRaw('SUM(price) > 2500')->get()->toArray();
7.查询限制条数(take/skip)
// take(5) 查询5条数据
// skip(10) 跳过前10条
$data = GgModel::skip(10)->take(5)->orderBy('id')->get()->toArray();
// 注意:insert方法不会自动添加时间戳 成功返回true
// 插入一条数据
$data = GgModel::insert(['name' => 'gg']);
$data = GgModel::insert(['name' => 'gg','created_at' => time()]);
// 插入多条数据
$data = GgModel::insert([['name' => 'gg2','created_at' => time()],['name' => 'gg3','created_at' => time()]]);
// 插入数据并返回自增id
$data = GgModel::insertGetId(['name' => 'gg66']);
// increment created_at+1
$data = GgModel::where('id', '128')->increment('created_at');
// 在自动添加1的同时更新 name的数据
$data = GgModel::where('id', '128')->increment('created_at', 1, ['name' => 'gg']);
// increment created_at+5
$data = GgModel::where('id', '128')->increment('created_at', 5);
// decrement created_at-1
$data = GgModel::where('id', '128')->decrement('created_at');
$data = GgModel::where('id', '128')->decrement('created_at', 5);
// 插入一条数据 会自动添加 created_at 和 updated_at 时间戳
// 返回GgModel对象
$data = GgModel::create(['name' => 'gg22']);
//更新name 并且自动更新 修改时间戳 updated_at 返回受影响的行数
$data = GgModel::where('id', '128')->update(['name' => 'gg44']);
// 删除一条数据
$data = GgModel::where('id', '128')->delete();
// 清空表数据 并将自增ID置为0
$data = GgModel::truncate();
composer create-project laravel/laravel your-project-name --prefer-dist "5.1.*"
laravel中使用redis首先需要你通过 Composer 安装 predis/predis 包:
composer require predis/predis
参考:Laravel 5.2 Queue队列基于Windows实现:https://www.jianshu.com/p/aae4febde3ab