2016-05-31 4 views
0

테이블 등급에서 단일 열을 가져 오려고합니다. 나는 내 컨트롤러에서 다음 코드를 사용하는 것을 들어 : 연간 열 이름,데이터베이스에서 단일 열을 검색 할 수 없습니다. Laravel

public function verify($id,$sid) 
{ 

$grade=Grade::all('annual')->whereLoose('id',$id); 
return $grade; 

} 

. 그러나 배열 []의 빈 집합을 반환하고 있습니다.

답변

0

all()은 데이터베이스에서로드 할 열 목록을 사용합니다. 귀하의 경우에는 이라는 열만 가져 오므로 에 필터링하면 나중에 결과가 반환되지 않습니다. 코드를 다음과 같이 바꾸면 작동합니다.

단일 개체가 아니라 개체 컬렉션을 반환한다는 점에 유의하십시오.

참고 : 당신은 항상 필요한 효율적이고하지하지 않은 데이터베이스에서 모든 학년 객체를로드하고 있습니다. 당신은 단순히 다음 코드를 사용하여 지정된 ID와 객체를 가져올 수 :

$grade = Grade::find($id); // fetch all columns 
$grade = Grade::find($id, ['id', 'annual']); // fetch only selected columns 
+0

우수함! 그것은 완벽하게 작동하고 메모 주셔서 감사합니다! 나는 그것을 계속할 것이다! – Anon

0

당신이 grades 테이블에서 모든 행을로드하고 코드에서 필터링되어 사용하는 코드입니다. 쿼리에서 필터 작업을 수행하는 것이 좋습니다.

열 부분에 대한

, 당신과 같이 쿼리의 first() 기능에 필요한 열을 추가 할 수 있습니다

public function verify($id,$sid) 
{ 
    $grade = Grade::where('id', $id)->first(['annual']); 
    return $grade->annual; 
} 
+0

고마워요! – Anon