如何在laravel 4中使用`where`方法和`with`方法?

时间:2013-09-30 01:15:22

标签: php laravel laravel-4 eloquent

鉴于以下内容,非常简单,例如:

国家/地区类

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');
    }
}

如何根据国家的idname列出所有州。

示例:

State::with('country')->where('country.id', '=', 1)->get()

上面返回一个区域,因为country不是查询的一部分(Eloquent必须在以后的where子句之后附加连接)。

1 个答案:

答案 0 :(得分:3)

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

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

$country = Country::find(1);
$states = $country->states()->get();