Ответ 1
Я должен признать, что, когда я впервые начал использовать Laravel, отношения, в которых часть, которую я должен был последовательно ссылаться на документы, и даже тогда, в некоторых случаях, я не совсем понял.
Чтобы помочь вам, associate()
используется для обновления отношения belongsTo()
. Рассматривая свой код, возвращаемый класс из $user->customer()
является классом отношений hasOne
и не будет иметь связанного с ним метода.
Если бы вы сделали это наоборот.
$user = new User($data);
$customer = new Customer($customerData);
$customer->user()->associate($user);
$customer->save();
Он работал бы как $customer->user()
- это отношение belongsTo
.
Чтобы сделать это, вы сначала сохраните модель пользователя, а затем сохраните модель клиента, например:
$user = new User($data);
$user->save();
$customer = new Customer($customerData);
$user->customer()->save($customer);
Изменить: может быть, не обязательно сначала сохранять модель пользователя, но я всегда делал это, не знаю почему.