2

给定以下非常简单的示例:

国家级

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 子句之后附加连接)。

4

1 回答 1

3

我认为你要么误解了这种关系,要么把它过度复杂化了。

class Country extends Eloquent {
    public function states() {
        return $this->hasMany('State', 'state_id');
    }   
}

$country = Country::find(1);
$states = $country->states()->get();
于 2013-09-30T02:01:52.940 回答