模型内部的特征
Traits inside Models
例如我有一个模型class。我希望它是 Timestampable
。这意味着模型必须具有 created_at
、updated_at
字段和它们的吸气剂。
<?php
trait Timestampable {
protected $created_at;
protected $updated_at;
public function getCreatedAt() {}
public function getUpdatedAt() {}
}
class User extends Model {
use Timestampable;
protected $id;
protected $name;
}
可以吗?或者我必须将 timestampable
字段移动到模型中?
Authenticatable Trait (Laravel)
在Laravel中,他们不将字段放在特征中,而只是其中的一些。当然,当这些字段存在于使用我们的特征的 class 中时,它当然会起作用。但是我们在 IDE 自动完成方面失去了一些优势,并使我们的代码变得模棱两可。
默认情况下所有模型都已经 属性 created_at
和 updated_at
因为 Illuminate\Database\Eloquent\Model
已经使用了 Illuminate\Database\Eloquent\Concerns\HasTimestamps
定义了 getCreatedAtColumn
和 getUpdatedAtColumn
方法 HasTimestamps method getCreatedAtColumn
您不必定义自己的HasTimestamps
这并不重要,因为提供该行为的所有实现都已经存在
例如我有一个模型class。我希望它是 Timestampable
。这意味着模型必须具有 created_at
、updated_at
字段和它们的吸气剂。
<?php
trait Timestampable {
protected $created_at;
protected $updated_at;
public function getCreatedAt() {}
public function getUpdatedAt() {}
}
class User extends Model {
use Timestampable;
protected $id;
protected $name;
}
可以吗?或者我必须将 timestampable
字段移动到模型中?
Authenticatable Trait (Laravel)
在Laravel中,他们不将字段放在特征中,而只是其中的一些。当然,当这些字段存在于使用我们的特征的 class 中时,它当然会起作用。但是我们在 IDE 自动完成方面失去了一些优势,并使我们的代码变得模棱两可。
默认情况下所有模型都已经 属性 created_at
和 updated_at
因为 Illuminate\Database\Eloquent\Model
已经使用了 Illuminate\Database\Eloquent\Concerns\HasTimestamps
定义了 getCreatedAtColumn
和 getUpdatedAtColumn
方法 HasTimestamps method getCreatedAtColumn
您不必定义自己的HasTimestamps
这并不重要,因为提供该行为的所有实现都已经存在