Laravel принадлежит с не работающими слепками - PullRequest
0 голосов
/ 16 мая 2018

У меня есть приложение модели и атрибуты модели.
В табличных приложениях у меня есть column: attribute (тип json). В этих столбцах у меня есть идентификаторы атрибутов.Пример:

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

Эти данные в табличных приложениях в столбце attributes.

В модельных приложениях я написал соотношение:

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

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

Но я получаю только атрибут сid 5.Но нужно достать все атрибуты.Почему я получаю только один атрибут?Я пытался и с hasMany я получаю тот же результат.

1 Ответ

0 голосов
/ 21 октября 2018

Я создал пакет со связями 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');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...