laravel 与 json 列的关系

Posted

技术标签:

【中文标题】laravel 与 json 列的关系【英文标题】:laravel relationship with json column 【发布时间】:2021-12-15 02:26:42 【问题描述】:
//controller   

    $promotion = Promotion::findOrFail($id);
        
        //return
        Array
        (
            [id] => 2
            [en_title] => promo1
            [game_id] => Array
                (
                    [0] => 3
                    [1] => 4
                    [2] => 5
                )
        
            [amount] => 100.00
            [start_at] => 2021-02-22
            [end_at] => 2222-02-22
            [status] => 1
        )
    
    //model promotion
    
    class Promotion extends Model
    
        use HasFactory;
    
        protected $guarded = [];
    
        protected $casts = [
            'game_id' => 'array'
        ];
    
        public function getAllGames()
        
            return $this->belongsTo(Game::class, 'game_id', 'id');
        
    
    

问题:

目前,我有 2 个表,分别是 gamespromotion,但是在建立关系时我遇到了麻烦,因为 game_idpromotion 表内部是一个 JSON,因此很难加入它。是否有任何解决方法可以轻松地将它们连接在一起以检索游戏数据?

【问题讨论】:

【参考方案1】:

在您的游戏和促销桌之间建立多对多关系, 将您的 game_ids 放入数据透视表 (game_promotion) 而不是 JSON 字段,Many To Many Relationships

【讨论】:

以上是关于laravel 与 json 列的关系的主要内容,如果未能解决你的问题,请参考以下文章

如何通过多对多关系获取与同一张表相关的行 - Laravel

有关 JSON、cURL 和 laravel 的参考文档

如何在 Laravel 8 中获取与 json 有一个 hasMany 关系的表的所有模型?

如何在 laravel 中查询 json 列的位置?

我想自学laraver,请诸位前辈给一些建议,谢谢

laravel 网站地图轮子