【发布时间】:2018-09-23 21:52:19
【问题描述】:
例如,我有一个模型类。我希望它是Timestampable。这意味着模型必须有created_at、updated_at 字段和它们的getter。
<?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 中,他们不会将字段放置在特征中,而只会放置其中的一些。当然,当这些字段存在于使用我们特征的类中时,它会起作用。但是我们在 IDE 自动补全方面失去了一些优势,并且使我们的代码模棱两可。
【问题讨论】:
-
Eloquent 模型已经默认启用了时间戳处理。调查 HasTimestamps 特征..
-
如果你认为“模型”是一个类,那你就错了。
-
如前所述,这种特殊的特性已经存在。话虽如此,框架本身确实使用特征来构成模型,所以你这样做没有错。就 IDE 而言,PHPStorm 确实对使用特征的位置进行了一些智能检测,并在此基础上提供了一些自动完成功能,但总的来说,我不知道其他 IDE 对此的支持程度
-
@Devon 只是一个例子,没有人说我在使用 Laravel,我只是举个例子,大家明白我的意思。
-
@MarkYeltsin 然后不要标记 laravel...
标签: php laravel oop coding-style traits