Laravel Eloquent saveMany не принимает второй атрибут

Как я думаю, это, как правило, как documentaion Я пытался использовать saveMany относительно его параметров как объектов модели.

У меня есть модель по имени Set и это hasMany Equipment Итак, из того, что создает набор, я отправляю много полей Equipment для того, чтобы быть сохраненным как следующее:

//Store method of SetController
$set = new Set();
$set->title = request('title');
$set->eqtype_id = request('eqtype');
$set->product_id = request('product');
$set->parts_count = request('parts_count');
$eq = request('equipments');
$set->equipments()->saveMany(array_map(function($n){return new \App\Equipment(['title' => $n, 'eqtype_id' => request('eqtype')]);}, $eq));
$set->save();

Тем не менее, я всегда получаю сообщение об ошибке об этом eqtype_id не имеет значения по умолчанию:

SQLSTATE [HY000]: общая ошибка: 1364 Поле ‘eqtype_id’ не имеет
значение по умолчанию (SQL: вставить в equipments (title, set_id,
updated_at, created_at) значения (A-1, 2017-03-18 12:07:30,
2017-03-18 12:07:30))

Я думал, что, может быть, request('eqtype') недоступен из array_map обратный вызов, поэтому я заменил его на фиксированный номер следующим образом:

$set->equipments()->saveMany(array_map(function($n){return new \App\Equipment(['title' => $n, 'eqtype_id' => 1]);}, $eq));

Но и ошибка та же, кажется, проблема с saveMany или же array_map, Я не знаю, как решить эту проблему!

уведомление

Модель Equipment связано с обеими моделями Set а также Eqytpe следующее:

    //Equipment model
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

/**
* App\Equipment
*
* @mixin \Eloquent
*/
class Equipment extends Model
{
public $table = "equipments";
protected  $fillable = ['title'];
public function set()
{
return $this->belongsTo(Set::class);
}

public function eqtype()
{
return $this->belongsTo(Eqtype::class);
}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]