zoukankan      html  css  js  c++  java
  • Laravel 数据库操作之Eloquent ORM模型

    //模型中的相关代码
    namespace App;

    use IlluminateDatabaseEloquentModel;

    class Student extends Model{
    //默认对应的是模型复数,即students,如果不是,需要自己指定表名
    protected $table = 'student';//指定表名

    //默认主键是id,如果不是,需要指定
    protected $primaryKey = 'id';

    //自动维护时间戳
    public $timestamps = true;

    protected function getDateFormat()
    {
    return time();
    }

    //不格式化时间戳
    protected function asDateTime($val)
    {
    return $val;
    }

    //指定允许批量赋值的字段
    protected $fillable = ['name','age'];

    //指定不允许批量赋值的字段
    protected $guarded = ['name','age'];

    }


    //控制器的相关代码
    //orm 使用模型查询

    public function orm1(){

    //all().返回模型的对象
    $student = Student::all();

    //find()
    $student = Student::find(100);

    //findOrFail(),查找不到就报错
    $student = Student::findOrFail(100);

    //get()
    $student = Student::get();

    //first()
    $student = Student::where('id','>',10)
    ->orderBy('age','desc')
    ->first();
    }


    //orm 使用模型查询
    public function orm2(){
    //使用模型新增数据
    $student = new Student();
    $student->name = 'hello';
    $student->age = 'hello';
    $bool = $student->save();
    var_dump($bool);

    //格式化日期
    $student = Student::find(1);
    echo date('Y-m-d H:i:s',$student->addtime);

    //使用模型的create方法新增数据,
    $student = Student::create(['name'=>'haha','age'=>10]);

    //firstOrCreate,先查找,若没有则新增
    $student = Student::firstOrCreate(['name'=>'haha']);

    //firstOrNew,先查找,若没有则返回实例,需要自行调用save新增
    $student = Student::firstOrNew(['name'=>'haha']);
    $bool = $student->save();

    //通过模型更新数据
    $student = Student::find(10);
    $student->name = 'happy';
    $bool = $student->save();
    var_dump($bool);

    //批量更新,返回行数
    $num = Student::where('id','>',10)->update(
    ['age'=>20]
    );
    var_dump($num);

    //通过模型删除,不存在会报错
    $student = Student::find(10);
    $bool = $student->delete();
    var_dump($bool);

    //通过主键删除
    $num=Student::destroy(10);
    var_dump($num);
    $num=Student::destroy([10,11,20]);
    var_dump($num);

    $num=Student::where('id','>',20)->delete();
    var_dump($num);

    }


  • 相关阅读:
    Guava学习笔记(4):Ordering犀利的比较器
    Guava学习笔记(3):复写的Object常用方法
    Guava学习笔记(1):Optional优雅的使用null
    [BZOJ1076][SCOI2008]奖励关
    [BZOJ1821][JSOI2010]部落划分
    [BZOJ1041]圆上的整点
    [Luogu2324]八数码难题
    [BZOJ1085][SCOI2005]骑士精神
    [BZOJ3109] [cqoi2013]新数独
    [LnOI2019]长脖子鹿省选模拟赛 东京夏日相会
  • 原文地址:https://www.cnblogs.com/gyfluck/p/9040061.html
Copyright © 2011-2022 走看看