📜  laravel 模型存在 id - PHP (1)

📅  最后修改于: 2023-12-03 15:17:15.614000             🧑  作者: Mango

Laravel 模型存在 id

Laravel 模型是 Laravel 框架中操作数据库的主要手段,每一个模型代表着数据库中的一个表。在默认情况下,Laravel 模型都会有一个名为 id 的自增长主键。本文将介绍在使用 Laravel 模型时,如何使用 id 字段。

主键

在 Laravel 中,默认情况下,每个 Model 都有一个自增的主键,这个主键默认为 id 字段。

可以在自己的 Model 中选择设置别的主键(一些特殊情况下的表可能没有 id 主键)。

指定主键

如果你的表中主键不叫 id,而是例如 user_id 这种字段名,你可以在 Model 中通过 $primaryKey 属性指定主键的名字:

class User extends Model
{
    protected $primaryKey = 'user_id';
}
使用
获取模型的 ID

可以使用 $model->id 获取模型的 ID:

$user = new User([
   'name' => 'alex'
]);

$user->save();

echo $user->id; // 输出自增后的 ID;
查询模型

可以使用 find() 来查询对应的模型:

// 查询 ID 为 1 的 User

$user = User::find(1);

// $user 为查询出的 User 模型

同样的,findOrFail() 也可用于查询。

查询构造器

在使用查询构造器进行查询时,可以使用 where()find() 方法查询指定 ID 的模型:

$user = DB::table('users')->where('id', 1)->first();

或者可以使用 findOrFail() 方法进行查询:

$user = DB::table('users')->findOrFail(1);
自定义主键查询字段名

可以使用 whereKey() 方法查询非默认字段名的主键:

$user = User::whereKey('user_id', 1)->first();

结论

Laravel 默认会对每个模型设置自增的主键,该主键默认字段名为 id

可以在 Model 中自定义主键字段名。

可以使用 $model->id 获取模型的 ID,使用 find() 方法查询模型,使用 where()findOrFail() 和查询构造器进行查询。