Laravel 数据库操作 Eloquent ORM
2017-05-15 本文已影响0人
捔落纏綿
建立模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Student extends Model
{
//指定表名 默认 模型名的复数
protected $table='student';
//指定主键 默认主键 为ID
protected $primaryKey='id';
//指定允许批量赋值的字段
protected $fillable=['name','age'];
//指定不允许批量赋值的字段
protected $guarded=[];
//是否维护时间戳 默认维护
//$timestamps=falst 不维护
public $timestamps=true;
//维护时间的时候保存时间戳
protected function getDateFormat()
{
return time(); // TODO: Change the autogenerated stub
}
//查询的时候返回时间戳
protected function asDateTime($value)
{
// return parent::asDateTime($value); // TODO: Change the autogenerated stub
return $value;
}
}
ORM 查询
//all() 查询所有数据 查询数据为集合
$students=Student::all();
dd($students);
//根据主键查询 查询一条数据
$student=Student::find(2);
dd($student);
//findOrFail() 根据主键查询 如果没有查到 报错
$student=Student::findOrFail(2);
dd($student);
//get() 查询所有数据
$students=Student::get();
dd($students);
//first() 查询第一条
$students=Student::where('id','>','1')->orderBy('age','desc')->first();
dd($students);
//chunk() 每次查询一定条数
Student::chunk(2,function($students){
var_dump($students);
});
//聚合函数
//count() 条数
$num = Student::count();
var_dump($num);
//max() 查询最大值
$max=Student::where('id','>',1)->max('age');
var_dump($max);
添加
//新增
//save()
$student=new Student();
$student->name='vbb';
$student->age=34;
$rs=$student->save();
dd($rs);
//create()
$rs=Student::create([
'name'=>'momo',
'age'=>23
]);
dd($rs);
//firstOrCreate()以属性查询数据 如果没有 新建数据
$rs=Student::firstOrCreate(
['name'=>'vbb4']
);
//firstOrNew() 以属性查询数据 如果没有 新建实例 如果想保存调用save()
$rs=Student::firstOrNew(
['name'=>'vbb4']
);
$bool=$rs->save();
dd($rs);
更新
//更新
//通过模型更新数据
$student=Student::find(2);
$student->age=2;
$bool=$student->save();
var_dump($bool);
//批量更新
$num=Student::where('id','>',5)->update(
['age'=>41]
);
var_dump($num);
删除
//删除
//通过模型删除
$student=Student::find(2);
$bool=$student->delete();
var_dump($bool);
//通过主键删除
$num=Student::destroy(3,4,5);
$num=Student::destroy([3,4,5]);
var_dump($num);
//删除指定条件
$num=Student::where('id','>',7)->delete();
var_dump($num);