laravel框架基础使用方式

49 阅读1分钟
  1. 默认设置

这个回去看视频第17集了解一下

创建模型:php artisan make:model Http/Models/User

  1. 模型定义
    1. 之前在查询构造器部分,把常用的数据库操作基本讲完,模型大体相同:
    2. 比如,我们要查询所有数据,直接使用模型::all()即可:

//查询所有记录

$users = User::all(); //或all()

              return [$users];

c. 也可以像查询构造器一样,添加各种各样的条件,写法一样:

//查询性别为男,价格大于90,限制显示2条

$users = User::where([

            ['gender', '=', '男'],

            ['price', '>', 95],

       ])->limit(2)->get();

d. 其他查询方法基本和查询构造器一样,如果有不一样,参考错误提示:

e. 这里列出官方给出示例的方法,对照试验(结合详细文档,重复较多)

(1) .find(1) // 通过主键查找

(2) .first() // 查找第一个

(3) .firstWhere() //找到查询中的首个

(4) .find([1,2,3]) //通过数组查找

(5) .firstOr() //查找首个返回,支持闭包

(6) .firstOrFail() //找不到时返回异常

(7) .count()、max()等集合 //集合操作

PS: 还有很多在查询构造器中的方法,比如排序、分组子查询等等都可以使用(并未一一验证)

  1. 增删改操作
    1. 新增方法如下,注意:默认模型接管 created_at和updated_at: (注意碰到updated_at报错一定要记得在模型文件里添加public $timestamps = false;)

$users = new User();

       $users->id = '27';

       $users->username = '辉夜';

       $users->password = '123';

       $users->gender = '女';

       $users->email = 'huiye@163.com';

       $users->price = '320.00';

       $users->details = '123';

       $users->uid = "1008";

       $users->status = '1';

       $users->create_time = "2018-10-20 12:32:33";

       $users->update_time = '2020-09-22 20:21:38';

       $users->save();

b. 更新,只要是查找到一条数据的情况下使用save()就是更新

$users = User::find(24);

       $users->username = '杜牧';

       $users->save();

c. 使用update()方法实现批量更新

User::where('username', '杜牧')

              ->update([

                 'username' => '李白'

              ]);

e. 使用create()方法实现新增,但需要在模型端设置批量赋值的许可:(这个方法主要是防止上传的数据有杂七杂八的值)

User::create([

            'username' => '上官',

            'password' => '123',

            'gender' => '女',

            'email' => 'shangguan@163.com',

            'price' => '320.00',

            'details' => '123',

            'uid' => '1009',

            'status' => '1',

            'create_time' => '2003-10-22 05:20:54',

            'update_time' => '2077-06-02 05:20:54'

        ]);

模型端代码:

protected $fillable = [

        'username',

        'password',

        'gender',

        'email',

        'price',

        'details',

        'uid',

        'status',

        'create_time',

        'update_time'

];

//也可以取消批量赋值限制直接在模型端代码下输入:protected $guarded = []; 就可以全部开放

f. 使用detete()方法,可以删除数据:

$users = User::find(30);

       $users->delete();

//批量删除

$users = User::where('username', '辉夜');

       $users->delete();

g. 如果你是通过组件id删除,那使用destroy(id)方法,免去查询操作;

//通过主键删除,删掉了id为1的记录

User::destroy(1);

User::destroy([1, 2, 3]);