Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 08.04.2015 17:34:10

BatForm

Отношение hasMany как вставить в 2 таблицы из формы?

У таблиц отношения hasMany, как мне вставить из формы, в БД сразу в две таблицы, (Имя, Телефон,Примечание -> Клиенты), (Модель, Марка, Количество -> Заказы) ??
Заранее огромное спасибо!!

#2 09.04.2015 08:19:33

Re: Отношение hasMany как вставить в 2 таблицы из формы?

вставляй по одной. если опасаешься ситуации когда часть вставилось, отвалилось с ошибкой, и так и осталось частично вставленным — используй транзакции.

Не в сети

#3 11.04.2015 13:07:12

Re: Отношение hasMany как вставить в 2 таблицы из формы?

Сейчас вопрос встал так, я добавил клиента, открываю форму создания нового заказа у клиента, и как написать модель, чтобы заказ принадлежал данному клиенту?
Связь описана

Не в сети

#4 12.04.2015 00:02:23

Re: Отношение hasMany как вставить в 2 таблицы из формы?

Клиент:

PHP
class Client extends Model {
    
/**
     * Список заказов клиента
     *
     * @return \Illuminate\Database\Eloquent\Relations\HasMany
     */
    
public function orders() {
        return 
$this->hasMany('App\Order');
    }
}

Заказ:

PHP
class Order extends Model {
    
/**
     * Клиент оформивший заказ
     *
     * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
     */
    
public function client() {
        return 
$this->belongsTo('App\Client');
    }
}

Где требуется:

PHP
$client->orders()->create([
    
'model' => $request->get('model'),
    
'brand' => $request->get('brand'),
    
'count' => $request->get('count')
]);

В таблице orders должно быть поле client_id.

Не в сети

#5 15.04.2015 10:17:01

Re: Отношение hasMany как вставить в 2 таблицы из формы?

А куда, "где требуется", вставлять?

Не в сети

#6 15.04.2015 11:47:48

Re: Отношение hasMany как вставить в 2 таблицы из формы?

И как получить id клиента, к которому добавляем заказ?

Не в сети

#7 22.04.2015 08:54:20

Re: Отношение hasMany как вставить в 2 таблицы из формы?

??

Не в сети

#8 22.04.2015 13:01:31

Re: Отношение hasMany как вставить в 2 таблицы из формы?

PHP
$client = \App\Client::create([ ... ]);
$order = \App\Order::create([ 'client_id' => $client->id, ... ]);

Не в сети

#9 22.04.2015 15:57:38

Re: Отношение hasMany как вставить в 2 таблицы из формы?

batf, читайте документацию! Там же написано, как сохранять отношения:

PHP
$order = new App\Order([
    
'model' => $request->get('model'),
    
'brand' => $request->get('brand'),
    
'count' => $request->get('count')
]);

$client->orders()->save($order);

Где $client — объект модели клиента.

Изменено Дмитрий (22.04.2015 16:02:31)

Не в сети

Подвал раздела