Laravel вставляет данные в таблицу, которая имеет 2 "BelongsTo" - PullRequest
0 голосов
/ 15 сентября 2018

Я хочу вставить данные в одну таблицу (называемую Startups), которая имеет 2 отношения "BelongsTo", я нашел способ сделать это с одной таблицей (One to Many) в хорошей документации Laravel, но я новичок в этой области и я не знаю, как вставить данные, относящиеся к двум разным таблицам (Категории - Контакты), в одну общую таблицу (Sturtups), чтобы лучше это понять, см. изображение, которое я прикрепил ниже

Вот мой код (пожалуйста, не обращайте внимания на сессии, в данном случае это не имеет значения):

$category_id = Session::get('category_id');
        $country_id = Session::get('country_id');

        $new_contact = new Contact([
            'name'  => Session::get('contact_name'),
            'phone' => Session::get('contact_phone'),
            'email' => Session::get('contact_email')
        ]);
        $country = Country::find($country_id);
        $country->contacts()->save($new_contact);

        $new_startup = new Startup([
            'name'        => Session::get('startup_name'),
            'description' => Session::get('startup_description'),
            'url'         => Session::get('startup_url'),
            'logo'        => Session::get('logo_name')
        ]);

        $category = Category::find($category_id);
        $category->startups()->save($new_startup);

        $contact = Contact::find( $country->contacts()->id );
        $contact->startups()->save($new_startup);

Изображение базы данных: изображение связей между таблицами в БД

Дополнительная информация: У меня есть эта ошибка: «Общая ошибка: 1364 Поле« contact_id »не имеет значения по умолчанию» Я знаю, почему происходит эта ошибка (я пытаюсь создать автозагрузку без идентификатора контакта)

Я просто хочу знать, как вставить данные в этом случае

Спасибо, ребята, за любую помощь!

1 Ответ

0 голосов
/ 15 сентября 2018

Ответ на ваш вопрос:

сделать это поле обнуляемым при переносе базы данных, чтобы эта ошибка не возникала

$table->unsignedInteger('contact_id')->nullable();
...