Laravel 5.1 入门

Laravel 5.1 CURD 入门

  • 数据库的model类的增删查改
    • 1.1新建模型类
    • 1.2查询
      • 1.2.0相关联操作
    • 1.3 插入
    • 1.4 修改
    • 1.5 删除
  • laravel其他
    • laravel 5.1 安装
    • redis包
    • 队列

数据库的model类的增删查改

1.1新建模型类

例如:数据库有个叫做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'];
}

1.2查询

// 查询第一条数据 返回数据对象
$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.2.0相关联操作

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();

1.3 插入

// 注意: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']);

1.4 修改

//更新name 并且自动更新 修改时间戳 updated_at 返回受影响的行数
$data = GgModel::where('id', '128')->update(['name' => 'gg44']);

1.5 删除

// 删除一条数据
$data = GgModel::where('id', '128')->delete();
// 清空表数据 并将自增ID置为0
$data = GgModel::truncate();

laravel其他

laravel 5.1 安装

composer create-project laravel/laravel your-project-name --prefer-dist "5.1.*"

redis包

laravel中使用redis首先需要你通过 Composer 安装 predis/predis 包:

composer require predis/predis

队列

参考:Laravel 5.2 Queue队列基于Windows实现:https://www.jianshu.com/p/aae4febde3ab

你可能感兴趣的:(PHP,laravel)