鉴于以下内容,非常简单,例如:
国家/地区类
class Country extends Eloquent {
protected $table = "countries";
protected $fillable = array(
'id',
'name'
);
public function state() {
return $this->hasMany('State', 'country_id');
}
}
州级
class State extends Eloquent {
protected $table = "states";
protected $fillable = array(
'id',
'name',
'country_id' #foreign
);
public function country() {
return $this->belongsTo('Country', 'country_id');
}
}
如何根据国家的id
或name
列出所有州。
示例:
State::with('country')->where('country.id', '=', 1)->get()
上面返回一个区域,因为country
不是查询的一部分(Eloquent必须在以后的where子句之后附加连接)。
答案 0 :(得分:3)
我认为你要么误解这种关系,要么过度复杂化。
class Country extends Eloquent {
public function states() {
return $this->hasMany('State', 'state_id');
}
}
$country = Country::find(1);
$states = $country->states()->get();