Laravel отношения не отображаются - PullRequest
1 голос
/ 03 марта 2020

У меня две модели. Один из них - Sales со следующими атрибутами:

protected $visible = [
    'id',
    'client_id',
    'is_paid'
];

public function client()
{
    return $this->belongsTo(Client::class, 'client_id', 'id');
}

Второй - Client:

protected $visible = [
    'id',
    'name'
];

public function sales()
{
    return $this->hasMany(Sales::class, 'client_id', 'id');
}

Я запрашиваю данные следующим образом:

$getSalewithClient = Sales::where('id', "=", 1)->with(["client"])->get()->toArray

И получение только данных от продажи:

{
    id: 1,
    client_id: 1,
    is_paid: null 
}

Но информация о клиенте отсутствует, даже ключа нет в списке.

Я не знаю почему, потому что сначала это работало и вдруг перестало работать, я в отчаянии.

Ответы [ 2 ]

1 голос
/ 03 марта 2020

Поскольку вы используете $visible, атрибут отношения скрыт, вам нужно добавить его в массив $visible:

 protected $visible = [
    'id',
    'client_id',
    'is_paid',
    'client'  // add relationship name here
];

, чтобы вы могли видеть результат с ним.

0 голосов
/ 03 марта 2020

return $this->belongsTo(Client::class, 'client_id', 'id');

Я думаю, это должно быть

return $this->belongsTo(Client::class, 'id', 'client_id');

Первый параметр - это столбец в сторонней таблице, второй - столбец в текущей таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...