Получение идентификатора недавно обновленного отношения hasMany - PullRequest
0 голосов
/ 29 марта 2020

Я работаю над проектом, в котором мне нужно обновить две связанные модели в моем контроллере. Ниже я создаю одну запись транзакции для пользователя, которая может иметь много транзакций. После этого мне нужен доступ к идентификатору недавно созданной транзакции, но так как это имеет много отношений, laravel выдает ошибку.

UserModel

public function transaction()
{
    return $this->hasMany('App\Model\Transaction');
}

Контроллер

    $user->transaction()->create([
        ...
        ...
    ])->save();

    $devUnit = new DevUnit();
    $devUnit->transaction_id = $user->transaction()->id; //this throws an error

Ошибка

Undefined property: Illuminate\Database\Eloquent\Relations\HasMany::$id

1 Ответ

2 голосов
/ 29 марта 2020

Извините, полностью неправильно прочитал ваш вопрос.

Сохраните результат метода create в переменной, чтобы получить доступ к заполненной модели с идентификатором.

$transaction = $user->transaction()->create([
    //
]);

$timeshareUnit = new TimeshareUnit();
$timeshareUnit->transaction_id = $transaction->id;
...