Laravel:通过另一个表从具有关联表的表中检索记录

Posted

技术标签:

【中文标题】Laravel:通过另一个表从具有关联表的表中检索记录【英文标题】:Laravel: Retrieve records from a table with an associated table via another table 【发布时间】:2022-01-16 20:40:35 【问题描述】:

这是我的问题。

我有 3 张桌子:

    预订(id、spot_id、...)

一个预订有一个位置,一个位置有多个预订

    景点(id、place_id、...)

一个地方有一个地方,一个地方有多个地方

    地点(ID,...)

我想要的是从 BookingController 获取 带有相关地点的预订列表

类似的东西:

Booking::where("ok",1)->with("place")->get();

我已经在所有三个模型中都有“hasMany”和“belongsTo”关系。而且我已经在预订模式中尝试过“hasOneThrough”,但无济于事。

我该怎么做谢谢。

【问题讨论】:

【参考方案1】:

如果您总是希望将地点包含在预订模型中,您可以将它们添加为属性:

namespace App\Models;

class Booking
    public $appends = ['places'];

    public function getPlacesAttribute()
    
        return $this->hasMany(Place::class);
    

现在您可以直接从预订类访问地点,例如 $booking->places

【讨论】:

以上是关于Laravel:通过另一个表从具有关联表的表中检索记录的主要内容,如果未能解决你的问题,请参考以下文章

如何从laravel中间接连接的表中检索数据?

MySQL 外键约束

如何从没有关系laravel 8的另一个表中检索具有多行的行数据

oracle 中如何将一张500万数据的表从一个库快速转移到另外一个库

从3个表中检索数据如何使用Laravel中的第一个表从最后一个表中检索数据

如何在Laravel中查看外键中的表字段