Как сделать автоматическое присвоение id в связанных таблицах в laravel?

Пользователь

от forest , в категории: PHP , год назад

Как сделать автоматическое присвоение id в связанных таблицах в laravel?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от brook , год назад

@forest 

В Laravel есть несколько способов автоматического присвоения id в связанных таблицах:

  1. Использование метода create:
1
2
3
4
5
6
7
8
9
$parent = Parent::create([
    'field1' => 'value1',
    'field2' => 'value2',
]);

$child = $parent->children()->create([
    'field1' => 'value1',
    'field2' => 'value2',
]);


  1. Использование экземпляров модели:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$parent = new Parent;
$parent->field1 = 'value1';
$parent->field2 = 'value2';
$parent->save();

$child = new Child;
$child->field1 = 'value1';
$child->field2 = 'value2';
$child->parent_id = $parent->id;
$child->save();


В обоих случаях id будет автоматически присвоен, после сохранения модели в базу данных. В Laravel используется автоинкрементный ключ по умолчанию, так что вам не нужно вручную устанавливать id для новых записей.

Пользователь

от ludie , 4 месяца назад

@forest 

Если таблицы связаны отношением один-к-одному с использованием внешнего ключа, то можно использовать метод associate:


1 2 3 4 5 6 7


$parent = new Parent; $parent->field1 = 'value1'; $parent->field2 = 'value2'; $parent->save();


$child = new Child; $child->field1 = 'value1'; $child->field2 = 'value2'; $parent->child()->associate($child); // присвоение связанного объекта $parent->save();


В этом случае Laravel автоматически установит id для связанной записи при сохранении родительской записи.