我有模型应用程序和模型属性。
在表格应用程序中,我有列:属性(类型为json)在这列中我有属性ID。例如:
["5", "6", "7"]
表格attributes
中的表格应用程序中的数据。
在模型应用中我写了关系:
protected $casts = [
'attributes' => 'array',
];
public function attribute() {
return $this->belongsTo('App\Attribute', 'attributes');
}
但我只获得身份5
的属性。但需要得到所有的属性。
为什么我只获得一个属性?我尝试了hasMany
我得到了相同的结果。
答案 0 :(得分:0)
我创建了一个具有JSON关系的软件包:https://github.com/staudenmeir/eloquent-json-relations
您可以像这样创建多对多关系:
class Application extends Model
{
use \Staudenmeir\EloquentJsonRelations\HasJsonRelationships;
protected $casts = [
'attributes' => 'array'
];
public function attribute()
{
return $this->belongsToJson(Attribute::class, 'attributes');
}
}
class Attribute extends Model
{
use \Staudenmeir\EloquentJsonRelations\HasJsonRelationships;
public function applications()
{
return $this->hasManyJson(Application::class, 'attributes');
}
}