建立 Model 文件 Feedback.php


本章节目录

    Laravel 中可以使用原生 SQL、流畅的查询构造器 和 Eloquent ORM 三种方式进行数据库交互操作。

    本课程使用 Eloquent ORM 完成数据库的交互操作,所以我们在进行数据库操作前,需要先创建 Eloquent 模型。

    新建 Model 文件

    在 app 文件夹下有一个 Models 文件夹用来统一存放 Model 文件(6.0 版本里没有此文件夹,需要手工创建)。

    也可以使用命令:php artisan make:model Feedback快速创建 Model 文件.

    如果是在独立的目录下,请加上目录路径,比如:php artisan make:model Models/Feedback,生成的文件路径会是:app/Models/Feedback.php

    默认生成后的 Model 文件如下代码所示:

    <?php
    namespace App\Models;
    use Illuminate\Database\Eloquent\Model;
    
    class Feedback extends Model
    {
        //
    }
    

    我们在类中增加几行代码:

    <?php
    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Model;
    use Illuminate\Database\Eloquent\SoftDeletes;
    
    class Feedback extends Model
    {
        protected $table = "feedback";
        use SoftDeletes;
        protected $dates = ['deleted_at'];
    
        protected $guarded = [
            'id',
            'deleted_at',
            'created_at',
            'updated_at'
        ];
    
    }
    

    protected $table 用于指定模型关联的数据库表名,如果不做声明,系统会默认取类名的复数做为数据库名,即 feedbacks

    use SoftDeletes 用于声明启用软删除,在表设计时我们启用了 deleted_at 标识字段,这里需要手工开启一下软删除功能。

    protected $guarded 指定不能批量赋值的字段,即黑名单,对应的是白名单 $fillable,详细介绍请查访文末附的官方文档,注意:如果使用模型的 create 方法新增数据,需要设置此清单。

    SoftDeletes 软删除和 timestamps 时间戳自动管理

    SoftDeletes 软删除

    相对于从数据库中真实的删除数据(即物理删除),软删除并没有真正的从数据库中删除数据,仅仅一种标记方法,表明该条记录已经被标记为删除,业务上不要从数据库中再查询出来该条记录了。

    启用软删除后,使用 Eloquent 删除记录时,模型为自动帮我们完成标记操作,并且在查询记录时会忽略掉拥有该标识的记录。

    timestamps 时间戳自动管理

    模型提供自动维护记录的新建时间(created_at 字段)和更新时间(updated_at 字段)功能,使用模型新增记录时,模型会自动帮我们填充这两个字段,在更新记录时,模型会自动帮我们更新 updated_at 字段。

    Model 中默认是开启 timestamps 时间戳自动管理的,如果不需要,需要我们声明 public $timestamps = false;

    更多关于模型的信息,请查访官方文档:
    英文版:https://laravel.com/docs/8.x/eloquent


    请先 登录
    审核后显示
    讨论记录(0 条)
    暂时还没有讨论

    © 2024 麻辣讲 豫ICP备19017310号-2