【问题标题】:How to define multiple belongsTo in laravel如何在laravel中定义多个belongsTo
【发布时间】:2021-01-20 20:57:34
【问题描述】:

我的表有很多外键,例如 prefecture_id、gender_id 和 status_id。

我为那些桌子做了模型。

所以我想定义多个 belongsTo 方法,如下所示,使用查询生成器获取所有数据..

但实际上belongsTo不能这样使用。

public function foreign(){

 return $this->belongsTo([
   'App/Prefecture',
   'App/Gender',                        
   'App/Status',
]
}

如果唯一的方法是为属于定义多个方法。

如何在查询构建器中获取所有属于数据。

请给我建议。

【问题讨论】:

    标签: laravel orm laravel-7 laravel-relations


    【解决方案1】:

    据我所知,没有办法从单一方法中获取多个belongsTo。您需要做的是为每个关系创建一个方法,当您想要加载关系时,您可以执行以下操作。

    型号

    public function prefecture()
    {
        return $this->belongsTo(\App\Prefecture::class);
    }
    
    public function gender()
    {
        return $this->belongsTo(\App\Gender::class);
    }
    
    public function status()
    {
        return $this->belongsTo(\App\Status::class);
    }
    

    查询

    // This will get your model with all of the belongs to relationships.
    
    $results = Model::query()->with(['prefecture', 'gender', 'status'])->get();
    

    【讨论】:

    • 感谢您的回答!我知道这种方式。响应数据有对象。但我想直接将数据分配给表列名。有没有办法?
    • 你能解释一下你想要达到的目标吗?您可以根据您设想的最终目标来编辑您的原始问题。
    猜你喜欢
    • 2021-12-26
    • 2018-05-15
    • 2015-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-23
    • 2021-07-04
    相关资源
    最近更新 更多