我很难找到我在这里做错了什么。我有两张桌子: 表1:状态(id,名称) 表2:城市(id,name,state_id)
一个州有许多城市,一个城市属于一个州。
我宣布这样的模型:
c:\Users\<username>\
如果我试图获得一个州并列出城市,那么在Tinker中,我只能找到一条线作为答案。
class City extends Model
{
protected $connection = 'pgsql';
protected $table = 'city';
public function state(){
return $this->belongsTo('App\State');
}
}
class State extends Model {
protected $connection = 'pgsql';
protected $table = 'state';
public function cities(){
return $this->hasMany('App\City','state_id','id');
}
}
给我:
$state_1 = App\Estado::find(1);
$state_1->cities();
更新:
我刚刚做了修改而且有效! 但是我可以通过show方法从CityController获得结果:
Illuminate\Database\Eloquent\Relations\HasMany
没有结果!
答案 0 :(得分:1)
第一个问题是:
$state_1->cities
对于更新的问题,请执行以下操作:
City::with('state')->get(); /* the ->where('state_id',$id); shouldn't be
* required as you've already declared the relationship
*/
这可能会解决您的问题。如果在您的Eloquent查询中没有定义get(),它将不返回任何内容。
答案 1 :(得分:0)