我正在设计一个应用程序,用户可以在其中定义对象的特征/属性。
我打算像这样去
class AttributeName extends Model
{
//
}
class Attribute extends Model
{
public function attributeName()
{
return $this->belongsTo('AttributeName');
}
public function job()
{
return $this->belongsTo('Job');
}
}
class Job extends Model
{
public function attributes()
{
return $this->hasMany('Attribute');
}
public function getAttributeValue($attributeNameId)
{
return $this->attributes->where('attribute_name_id', $attributeNameId)->first()->value ?? ;;
}
}
不幸的是,这给我带来了困难,因为$this->attributes
对Laravel模型有另一种含义。所以Attribute
对于这些事情来说不是一个很好的名字。
命名它trait
在PHP中也不顺利。那么我该怎么命名呢?是否有任何反映语义以及属性或特征的通用名称,但与Laravel和PHP中的其他用法没有冲突?