как хранить данные дополнительного столбца в сводной таблице laravel - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть сводная таблица, как это

enter image description here

это моя модель пользователей

 public function getHousing()
{
    return $this->belongsToMany(Housing::class, 'user_housing', 'user_id', 'housing_id')->withPivot('primary');
}

это моя модель жилья

   public function getUser()
{
    return $this->belongsToMany(Users::class, 'user_housing', 'housing_id', 'user_id')->withPivot('primary');
}

я хочу сохранить первичный файл с помощью 1 , это мой контроллер

     $getData = $this->crud->show($id);
    if (!$getData) {
        return redirect()->route('admin.' . $this->route . '.index');
    }

    $data = $this->validate($this->request, [
        'housing_group_id' => 'required',
        'housing_id' => 'required',
        'primary'   => 'required',
    ]);

    $getData->housing_id = $getData->getHousing()->pluck('id')->toArray();


    $getData->getHousing()->sync($this->request->get('housing_id'), ['primary' => 1]);


    $id = $getData->id;

я уже добавляю массив заполнения первичного 1, но у меня есть такая ошибка

SQLSTATE[HY000]: General error: 1364 Field 'primary' doesn't have a default value 

как сохранить дополнительное поле в сводной таблице laravel? спасибо

1 Ответ

0 голосов
/ 17 апреля 2020

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

$elements_array[$this->request->get('housing_id')]=['primary' => 1]
$getData->getHousing()->sync(elements_array);

, если у вас больше ' id 'to syn c ... вы должны повторить первый шаг для каждого идентификатора.

отметьте это: { ссылка }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...