Laravel属于演员无法工作

时间:2018-05-16 14:14:35

标签: laravel

我有模型应用程序和模型属性。
在表格应用程序中,我有列:属性(类型为json)在这列中我有属性ID。例如:

["5", "6", "7"]

表格attributes中的表格应用程序中的数据。

在模型应用中我写了关系:

protected $casts = [
    'attributes' => 'array',
];

public function attribute() {
    return $this->belongsTo('App\Attribute', 'attributes');
}

但我只获得身份5的属性。但需要得到所有的属性。 为什么我只获得一个属性?我尝试了hasMany我得到了相同的结果。

1 个答案:

答案 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');
    }
}