簡體   English   中英

Laravel將數據插入到具有2個“ BelongsTo”的表中

[英]Laravel inserting data to a table which has 2 “BelongsTo”

我想將數據插入具有2個“ BelongsTo”關系的一個表(稱為Startups)中,我在Laravel的文檔中找到了如何對一個表(一對多)執行此操作,但是我是該領域的初學者,我沒有不知道如何在一個公用表(Sturtups)中插入與2個不同表(類別-聯系人)相關的數據,要更好地理解這一點,請參見下面的圖像

這是我的代碼(請不要關注Sessions,在這種情況下不要緊):

$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'沒有默認值”我知道為什么發生此錯誤(我正在嘗試創建沒有聯系ID的啟動)

我只想知道在這種情況下如何插入數據

謝謝大家的幫助!

您的問題的答案是:

使該字段在數據庫遷移中可為空 ,因此不會發生此錯誤

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM