在 Laravel 中,数据库模型是表示和处理数据库表中数据的类。要定义一个数据库模型,你需要遵循以下步骤:
- 创建模型文件:首先,使用 Artisan 命令行工具创建一个新的模型文件。在命令行中输入以下命令,将
YourModel
替换为你想要的模型名称:
php artisan make:model YourModel
这将在 app/Models
目录下生成一个新的模型文件,例如 YourModel.php
。
- 定义模型类:打开新生成的模型文件,你会看到一个名为
YourModel
的类。这个类继承自Illuminate\Database\Eloquent\Model
类,这是 Laravel 中用于表示数据库表的基类。
namespace App\Models; use Illuminate\Database\Eloquent\Model; class YourModel extends Model { // 模型代码 }
- 定义表名:在模型类中,你可以通过覆盖
protected $table
属性来定义模型对应的数据库表名。例如,如果你的模型对应名为your_table
的表,你可以这样定义:
protected $table = 'your_table';
- 定义字段属性:你可以在模型类中定义一个受保护的
$fillable
属性,该属性是一个数组,包含一个模型中所有可批量赋值的字段。例如:
protected $fillable = ['field1', 'field2', 'field3'];
这将告诉 Laravel,只有 field1
、field2
和 field3
这三个字段可以被批量赋值。
- 定义关联关系:你可以在模型类中定义与其他模型的关联关系。例如,如果你有一个
User
模型和一个Post
模型,一个用户可以有多篇文章,你可以在Post
模型中定义一个user
方法来表示这种关系:
public function user() { return $this->belongsTo(User::class); }
同样,你也可以在 User
模型中定义一个 posts
方法来表示用户拥有多篇文章的关系:
public function posts() { return $this->hasMany(Post::class); }
现在你已经成功定义了一个 Laravel 数据库模型。你可以使用 Eloquent ORM(对象关系映射)来操作数据库中的数据。例如,你可以使用以下代码创建、读取、更新和删除记录:
// 创建记录 $post = new Post(['title' => 'My first post', 'content' => 'This is the content of my first post.']); $post->user()->associate($user); $post->save(); // 读取记录 $post = Post::find(1); // 更新记录 $post->title = 'Updated title'; $post->save(); // 删除记录 $post->delete();