2014-12-30 2 views
1

foreach 루프에서 Eloquent 쿼리가 발생했습니다. 내 League 모델이 정확합니다. 값을 반향 할 때 루프 내에 올바른 $match->league_id이 표시됩니다. 데이터베이스에 상대 레코드가 $match->league_id입니다.루프에서 웅변 답게

foreach ($matchesRaw as $k=>$match) { 
    $lg= League::find($match->league_id)->first(); 
    echo $lg->name; 
} 

내 문제는 데이터베이스에 내 코드 만 표시 첫 번째 행 ($lg->name)입니다. 항상 내 쿼리가 첫 번째 행을 얻는다는 의미입니다. 무슨 일이 있어도 $match->league_id이 루프에 들어갑니다. 이 문제를 어떻게 해결할 수 있습니까? 그래서

League::first(); 

예 :

+1

관계를 올바르게 설정하면'$ match-> league-> name-> first()'와 같은 것을 사용할 수 있습니다. – user2094178

+0

나는 그것을 몰랐다, 그것은 매우 감사한다. :) –

+0

@ user2094178 당신은 오히려 모델의 재산에 '첫 번째'를 부르지 않을 것이다. –

답변

-1

나는 ..You이

+0

일부 코드 예제를 제공해야합니다. 실제로는 부분적으로 만 질문에 응답하기 때문입니다. –

3

귀하의 문제는이 같은 first를 호출 있다는 것을 이해 대신 루프에있는 다른 웅변 객체를 호출에 조인을 사용한다고 생각합니다 항상 그 테이블의 첫 번째 행을 가져옵니다.

$leagueModel = League::find($someId); // returns model 
$leagueModel->first() == League::first(); // returns the same model 

가 대신 단순히 전화 League::find($someId), 아니 first 모든 : 당신은 단지 동일하게 할 수 있기 때문에

입니다.

+0

안녕하세요, Mr. Tkaczyk,'$ match-> league-> first() -> name'을 할 수 없습니까? 내 견해 중 일부에서 이와 비슷한 행동을합니다. – user2094178

+0

그는 할 수는 있지만'$ match-> league'가 단일 모델을 반환하기 때문에'League :: first()'를 다시 호출 할 것입니다. first()가 컬렉션에서 호출되는 곳으로, 단일 모델이 아닌'$ league-> teams-> first()'와 같은 것을 참조합니다. –