Вставка данных в две разные таблицы с отношением, используя Eloquent - PullRequest
1 голос
/ 05 июля 2019

У меня к таблицам называются клиенты и адрес.

Таблица клиентов

id
customer_name
address_id

адресная таблица

id
address

Форма содержит имена клиентов и адреса вместе. Я хотел бы вставить адрес и получить адрес Id и вставить в таблицу клиентов с идентификатором адреса и именем клиента. Возможно ли это?

моя модель выглядит так

public function addCustomer($data)
{

    $this->table('address')->insertGetId([ 
        'address' => $data['address'],
    ]);

    $this->table('customers')->insertGetId([ 
        'customer_name' => $data['customer_name'],
        'address_id' => //how can I get address ID,
    ]);
}

Как получить идентификатор адреса из только что вставленной строки?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Вы делали правильно.Вам нужно инициализировать переменную address id и установить ее в address_id во вставке таблицы клиентов

public function addCustomer($data)
{
    // storing address_id to the $address_id variable
    $address_id = $this->table('address')->insertGetId([ 
      'address' => $data['address'],
    ]);

    $this->table('customers')->insertGetId([ 
       'customer_name' => $data['customer_name'],
       'address_id' => $address_id 
       // setting address_id from the above address id
    ]);
}
0 голосов
/ 05 июля 2019
public function addCustomer($data)
{
    $address = $this->table('address')->insertGetId([ 
      'address' => $data['address'],
    ]);

    $this->table('customers')->insertGetId([ 
       'customer_name' => $data['customer_name'],
       'address_id' => $address 
    ]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...