2014-03-26 3 views
0
여러분 모두를 귀찮게하지만, 나는 Laravel 4 튜토리얼에서 일부 코드에 관한 멍청한 놈 질문을 가지고 정말 죄송

비 개체의 속성을 얻으려고 노력 여러 테이블. 여기 는 모델 코드입니다 :Laravel 4 웅변은

<?php 
class Auteur extends Eloquent 
{ 
    public $timestamps = false; 
    public function livres() 
    { 
     return $this ->hasMany('Livre'); 
    } 
} 

다른 모델 :

<?php 
class Livre extends Eloquent 
{ 
    public $timestamps = false; 
    public function auteur() 
    { 
     return $this ->belongsTo('Auteur'); 
    } 
} 

그리고 내가 전화 할 때 : 비 개체의 속성을 얻으려고 노력 :

Route::any('DynEloquent',function() 
{ 
    foreach(Livre::with('auteur')->get() as $livre) 
    echo '"'.$livre->titre.'" a été écrit par '.$livre->auteur->nom.'<br>'; 
}); 

내가 ErrorException이 분명히 $livre->auteur->nom에 있습니다.

전 공식적인 문서 및 기타 관련 자료에서 웅변적인 관계에 관한 비슷한 질문을 찾았으므로 도움이 될 것입니다. (나는 비록 내가 쉬운 일을 놓치고 있다고 꽤 확신한다) (내가 프랑스 사람이기 때문에 나의 영어를 용서한다.)

고마워.

표 auteurs : -id -nom -prenom 표 리브르

-naissance : -id -titre -auteur_id

+0

$ livre는 개체가 아닙니다. foreach 루프 안에'var_dump ($ livre);의 결과가 무엇인지 시험해 주시겠습니까? – ilpaijin

+0

당신은 자서전을 갖고있는 리브가 없다고 확인하십시오! – angoru

+0

var_dump ($ livre) 슬픈 듯이 객체에 대한 정상적인 결과를 제공합니다. (실제로 길기 때문에 게시하지 않습니다.) – Tholl

답변

1

그것은 당신의 관계에 있음을 $livre->auteur 어떤을 반환하지 않습니다 같습니다 데이터, 그것은 아마도 null이 아니며 객체가 아니며 메시지 Trying to get property of non-object을 받게됩니다. 당신이 할 수있는 확인하려면, 그들은 정말 올바른 $ 테이블과 데이터베이스 테이블을 지적하는 경우

Route::any('DynEloquent',function() 
{ 
    foreach(Livre::with('auteur')->get() as $livre) 
    { 
     dd($livre->auteur); 
    } 
}); 

당신은 그들이 제대로 적절한 관계형 데이터로 가득 있는지, 투어 관계를 확인해야합니다.

+0

죄송합니다. 편집했습니다. 그것 :) – Tholl

+0

,이 사건에 대한 정보를 제공하도록 편집했습니다. –

+0

좋습니다 조언에 감사드립니다. 안토니오의 추적 방법을 통해 제 책 중 하나가 구현되지 않은 ID와 관련이 있다는 것을 알게되었으므로 작성자가 있지만 책을 가지고 있지는 않습니다. "auteurs"테이블의 저자 ID. DB에서 모든 것을 완벽하게 실행하고 있습니다. 죄송 합니다만, 분명했습니다 ... 다시 한번 감사드립니다. – Tholl