Laravel модель с репликацией отношений завершается с ошибкой с использованием TNTSearch при сохранении / pu sh mb_strtolower () ожидает, что параметр 1 будет строкой, задан массив - PullRequest
0 голосов
/ 23 января 2020

При попытке репликации модели со связями происходит сбой TNTS с ошибкой mb_strtolower() expects parameter 1 to be string, array is given.

Это происходит только тогда, когда Laravel реплицирует модель со связями, а затем пытается сохранить ее. Такое поведение не происходит для моделей без отношений. Тот же результат для save () и pu sh ()

Пример:

Работает нормально, как и ожидалось.

$inventory = Inventory::where(['id' => $order->inventory_id])->first();
$new = $inventory->replicate();
$new->push();

Сбой TNTSearch со следующими:

$inventory = Inventory::with(['type', 'form'])->where(['id' => $order->inventory_id])->first();
$new = $inventory->replicate();
$new->push();

Таким образом, ошибка достаточно очевидна, это базовая ошибка c PHP, но как мне обойти эту ошибку, пытаясь также воспроизвести отношения модели? Это тот случай, когда сначала нужно сохранить модель, а затем пытаться реплицировать все ее отношения по отдельности после первоначальной репликации?


ОБНОВЛЕНИЕ: добавление метода отношения по запросу. Довольно основы c и ничего особенного.

приложение / инвентарь. php

    public function type()
    {
        return $this->belongsTo('App\Type');
    }

    public function form()
    {
        return $this->belongsTo('App\Form');
    }
...