Только одна вставка вместо 12 - PullRequest
2 голосов
/ 13 января 2020

у меня parts и items. Мне нравится создавать items из parts. Следующий запрос содержит 12 идентификаторов. $parts возвращает 12 моделей, как и ожидалось.

Но в БД хранится только последняя:

PurchaseItemController

    public function storeAddedParts(StorePurchaseOrderItemRequest $request)
    {
        $parts = Part::whereIn('id', $request->added_part_ids)->get();

        foreach ($parts as $part) {
            $this->repo->create([
                'name' => $part->name
            ]);
        }
    }

Репозиторий

    public $model;

    public function __construct(PurchaseOrderItem $model)
    {
        $this->model = $model;
    }

    public function create( $data)
    {
        $this->model->name = $data['name'];
        $this->model->creator_id = Auth()->id();
        $this->model->save();

        return $this->model;
    }

Я не понимаю, почему сохраняется только последняя вставка.

1 Ответ

1 голос
/ 13 января 2020

Я рекомендую вам создать сразу несколько предметов, например:

В PurchaseItemController:

    public function storeAddedParts(StorePurchaseOrderItemRequest $request)
    {
        $parts = Part::whereIn('id', $request->added_part_ids)->select('name')->toArray();

        PurchaseOrderItem::insert($parts);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...