3.关于laravel框架中数据库操作-Eloquent ORM

基本简介:Eloquent ORM为laravel自带的ActiveRecord实现,用于数据库操作,每个数据表都有一个与之相对应的“模型”(Model)用于和数据表的交互

1.model的建立,基础model

namespace App;

use Illuminate\Database\Eloquent\Model;

class Test extends Model{

      //指定表名,不指定表名的情况表名就为模型的复数

      protected $tabel = 'test';

      //指定主键

      protected $primaryKey = 'id';

     //自动维护时间戳

     public $timestamps = true;

     //指定允许批量赋值的字段

     protected $fillable = ['name','age'];

     //指定不允许批量赋值的字段

     protected $guarded = ['name','age'];

     //将时间设成time()形式输出

     protected function getDateFormat(){

          return time();

     } 

     //asDateTime($val)===>将时间变成数字格式

     protected function asDateTime($val){

          return $val;

     }

}


Controller创建方法使用ORM查询

public function orm1{

   // all(),输出为集合,查询表的所有记录

   $test = Test::all();=>>>Model名//查询函数

   //find(),根据主键进行查询

   $test1 = Test::find();

   //findOrFail().根据主键查找,没查找到抛出异常

   $test2 = Test::findOrFail

   //和DB facade通用的方法

   Test::get();//查询所有数据

   Test::where('id','>',1)->orderBy('age','desc')->first();

   Test::chunk(2,function($test){

          var_dump($test);

    });

    //聚合函数,max,min,count,avg...

    Test::conut();

}

public function orm2(){

           //使用模型新增数据

           $test =  new Test();

           $test->name = 'name';

           $test->age    = 20;

           $test->save();


           //使用模型的Create方法新增数据

           Test::creat(

                  ['name'=>'test','age'=>20]

            );在没有设置批量赋值的情况下会报错

             //firstOrCreat(),以属性查找信息,如果没有则新增

            Test::firstOrCreat(

                     ['name'=>'test']

             );

             //firstOrNew(),以属性查找信息,若没有,则建立新的实例,但没进行保存操作。若需要保存可以save();

              $test = Test::firstOrNew(

                     ['name'=>'first']

               );

               $bool = $test->save();   

}

未完。。。

public function orm3(){

       //通过模型修改

      $test = Test::find(1);

      $test -> name = 'test';

      $bool = $test->save();

      //批量更新

      $num = Test::where('id','>',2)->update(

               ['name'=>'test2','age'=>20]

        );

}

public function orm4(){

      $test = Test::find(1);

      $test->delete();

      //通过主键删除

      $num = Test::destory(1);

      $num = Test::destory(1,2);

      $num = Test::destory([1,2]);


      $num = Test::where('id','>',2)->delete();

}

你可能感兴趣的:(laravel学习笔记)