提问者:小点点

雄辩的ORM一对多查询不起作用


我正在与laravel 5.4合作。我已经创建了国家和州表。

国家表如下

我的状态表是:

在这里,我编写了连接查询,如下所示。它工作得很好。

$state = DB::table($this->tbl_states)
                ->join($this->tbl_countries, $this->tbl_countries.'.id', '=', $this->tbl_states.'.country_id')
                ->select($this->tbl_states.'.*', $this->tbl_countries.'.name as country_name')
                ->whereNull($this->tbl_states.'.deleted_at')
                ->paginate(10)

但是,我不想写这个查询,而是想使用雄辩的ORM,那么我应该写什么查询呢?

在乡村模型中,我创建了如下所示的函数:

public function states()
{
    return $this->hasMany('state');
}

在状态模型中,我有写函数,如下所示:

public function country()
{
    return $this->hasOne('country');
}

共1个答案

匿名用户

国家模型中尝试以下:

public function states()
{
    return $this->hasMany(App\State::class);
}

状态下模型:

public function country()
{
    return $this->belongsTo(App\Country::class);
}

然后$国家-

官方文档:雄辩:关系