【问题标题】:Laravel accessing hasMany of hasOneLaravel 访问 hasMany 的 hasOne
【发布时间】:2018-12-06 20:05:12
【问题描述】:

我有房间、画廊和图片。我想将画廊与房间相关联,然后我想使用房间模型访问分配的画廊的图像。我是 Laravel 的新手,我查看了 YouTube 课程和文档,但没有找到解决问题的方法。

Room.php:

class Room extends Model
{
    protected $table = 'rooms';

    public function gallery()
    {
        return $this->hasOne('App\Gallery');
    }
}

图库.php:

class Gallery extends Model
{
    protected $table = 'gallery';

    public function images()
    {
        return $this->hasMany('App\Image');
    }

    public function room()
    {
        return this->belongsTo('App\Room');
    }
}

RoomController.php:

$room = Room::findOrFail($id);
$room_gallery = $room->gallery()->images;
return $room_gallery;

【问题讨论】:

    标签: php laravel web web-applications frameworks


    【解决方案1】:

    使用 Eloquent 关系,您可以将它们作为属性访问以访问相关模型或访问方法以查询或执行其他操作。

    由于您需要一个画廊模型及其相关的图像模型,您可以访问两者的属性:

    $room_gallery = $room->gallery->images;
    

    对于 HasOne,$room->gallery 本质上等于 $room->gallery()->first()。使用 HasMany,$gallery->images 将基本上等于 $gallery->images()->get()

    不过,HasManyThrough 关系可能会派上用场。

    【讨论】:

      猜你喜欢
      • 2016-03-17
      • 2023-01-12
      • 1970-01-01
      • 2017-05-31
      • 2020-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-20
      相关资源
      最近更新 更多