Laravel 4 と雄弁な orm を使用して、ムービー セッション データベースを構築しています。
現在、次のモデルがあります。
class Location extends \Eloquent
{
public $timestamps = false;
public $table = 'movsys_location';
protected $fillable = array('name', 'desc');
public function sessions(){
return $this->hasMany('Session', 'location_id');
}
}
class Session extends \Eloquent
{
public $timestamps = false;
public $table = 'movsys_session';
protected $fillable = array('time');
public function location(){
return $this->hasOne('Location', 'id');
}
}
(注: これらのモデルは、必要なコードに取り除かれています。)
今私のコントローラには、次のものがあります。
$Sessions = Session::all();
foreach($Sessions as $Session){
echo (isset($Session->location->name) ? $Session->location->name : 'NO LOCATION');
}
そして、これは私のデータベースがどのように見えるかです:
これで、すべてが機能しているように見えますが、両方のセッションの場所が同じであっても、最初のセッションのみが場所の名前を返します! 2 番目のエコーは「NO LOCATION」を返します。
理由についてのアイデアや助けをいただければ幸いです。この答えが十分に明確でない場合は、お知らせください。