首页 > 解决方案 > Laravel 将原始 SQL 查询编写为 Eloquent 的可能方法

问题描述

我从我的数据库中选择有问题。

这就是我的查询的样子:

  SELECT `deads`.`id`, `graves`.*, `places`.`row`, `places`.`place`, `places`.`id_quarter`, `places`.`occupied` FROM `deads` LEFT JOIN `graves` ON `deads`.`id_grave` = `graves`.`id` LEFT JOIN `places` ON `graves`.`id_place` = `places`.`id` WHERE `places`.`id_quarter` = '1' AND `places`.`occupied` = '1'

我的死亡模型:

 public function graves()
        {
            return $this->belongsTo(Grave::class,'id_grave');
        }

我的坟墓模型:

public function places()
{
    return $this->belongsTo(Place::class,'id_place');
}

public function deads()
{
    return $this->hasMany(Dead::class);
}

我的地方模型:

public function quarters()
    {
        return $this->belongsTo(Quarter::class,'id_quarter');
    }

    public function graves()
    {
        return $this->hasOne(Grave::class,'id_grave');
    }

我不明白,我怎么能把它写成雄辩的选择。我想绕过未来的注入问题。有什么方法可以顺利完成,还是应该将其保留为 RAW SQL 查询?如何将它转换为我使用 eloquent 时得到的数组?

标签: phpsqllaraveleloquent

解决方案


推荐阅读