簡體   English   中英

使用Json的Laravel / PHP MySQL一對多關系

[英]Laravel/PHP MySQL One to Many Relationship using Json

首先,以Json列的形式存儲一對多關系是一個好主意,如果是這樣,我如何在laravel中編寫查詢以檢索數據

例如:

我有活動表和垂直表

活動表

id | activity | verticals
1  | Dusting  | [1,2]
2  | Oiling   | [3]
3  | Mopping  | [1,2,3]

垂直表

id | vertical
1  | House Keeping
2  | Pantry
3  | Engineering & Machinery 

現在在我的儀表板中顯示活動列表,結果應該是

id | activity | verticals
1  | Dusting  | Housekeeping, Pantry
2  | Oiling   | Engineering & Machinery
3  | Mopping  | Housekeeping, Pantry, Engineering & Machinery

現在在傳統的非json方法中我已經使用了laravel Eloquent的self :: hasMany但是如果使用json我可以這樣做嗎

也是可取的嗎?

我創建了一個包含JSON關系的包: https//github.com/staudenmeir/eloquent-json-relations

您可以創建這樣的多對多關系:

class Activity extends Model
{
    use \Staudenmeir\EloquentJsonRelations\HasJsonRelationships;

    protected $casts = [
       'verticals' => 'json',
    ];

    public function vertical()
    {
        return $this->belongsToJson(Vertical::class, 'verticals');
    }
}

class Vertical extends Model
{
    use \Staudenmeir\EloquentJsonRelations\HasJsonRelationships;

    public function activities()
    {
       return $this->hasManyJson(Activity::class, 'verticals');
    }
}

暫無
暫無

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

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