Insert related model

326
18 января 2017, 03:08

Здравствуйте. Как в laravel можно занести значения в базу приходящие массивом на связи hasMany? Аналог attach на belongsToMany связи.

$person = Person::create($request->all());
$person->fields->createmany($request->fields); // выходит ошибка

$request->fields - это масстив. Все выглядит так

array(
    'first_name' => 'Test'
    'fields' => array(
        0 => 'asdasd',
        1 => 'asda312312sd',
        2 => 'a123123sdasd',
    )
)

Знаю про saveMany но он тоже выдает ошибки

Answer 1

Решил так

/**
 * Attach related model
 *
 * @param array $aGroup
 * @return AttributeGroup|array
 */
public function attachRelated(Array $aGroup)
{
    $instances = [];
    foreach($aGroup as $group)
    {
        $instances[] = new AttributeGroup(['name' => $group]);
    }
    return $instances;
}

И теперь делаем так

$person = Person::create($request->all());
if($request->fields) // если заполнены данные в поле fields[]
    {
        $person->fields()->saveMany($this->attachRelated($request->fields));
    }
READ ALSO
Шанс рандома предмета PHP [требует правки]

Шанс рандома предмета PHP [требует правки]

Привет всемЕсть строчки $item1 = 50%; $item2 = 50%; $item3 = 20%; $item4 = 10%; там где проценты - это шанс выпадения

418
Что такое коллекция объектов в php

Что такое коллекция объектов в php

Собственно есть задача, создать объект со вложенной коллекций объектов ticketsНо что это такое?

816
PUT FormData laravel. Не принимаются данные

PUT FormData laravel. Не принимаются данные

Отправляю данные серверу для обновления с помощью метода PUTДанные отправляю с помощью FormData

461