2017-09-24 1 views
0

와 Laravel에서 하나의 결과 만 검색이 내 쿼리입니다 :루프 Yajra 데이터 테이블

$albix = DB::table('albi') 
    ->select(['albi.id']) 
    ->join('albi_user', 'albi.id', '=', 'albi_user.albi_id') 
    ->where('user_id', '=', $user_id) 
    ->get(); 

이 여러 항목을 검색해야 내 foreach 루프 : 왜이 ​​작동하지 않습니다

foreach ($albix as $a) { 
    return $albi->id == $a->id ? 'alert-warning' : ''; 
} 

를?

+0

첫 번째 결과를 얻고 싶다면'get()'을'first() '로 바꿔야 만합니다. – inet123

+0

여러 항목을 가져오고 싶지만이 foreach로 하나만 가져옵니다 – Marko

답변

0

돌아 데이터베이스 결과를 통해 루프

if($albi->id == $a->id){ return 'alert-warning';}

$data = [] 
foreach ($albix as $a) { 
    $data[$a->id] = $albi->id == $a->id ? 'alert-warning' : ''; 
} 
return $data; 
+0

else 조건으로 작동하지 않습니다! 왜 그런지 알아? – Marko

+0

if 문이 실행되지 않으면 else 루프가 중지됩니다 전체 코드를 볼 수 없지만 $ data = []; foreach ($ albix as $ a) { $ data [$ a-> id] = $ albi-> id == $ a-> id입니까? '경고 - 경고': ''; } return $ data; –

0

루프를 중지하고 id가 동일한 경우, 올바른 객체 반환 : 귀하의 경우에는

$user = (object)['id' => '123']; 
foreach ($db_results as $row) { 
    if ($user->id == $row->id) { 
     return $row; 
    } 
} 
return []; // id not found, handle your fallback 

을 :

foreach ($albix as $a) { 
    if ($albi->id == $a->id) { 
     return $a; 
    } 
} 
return []; // id not found, handle your fallback 
+0

죄송합니다. 여러 항목을 가져오고 싶습니다. 당신이 원하는 결과의 예를 보여 주면 그렇게 할 수 있습니다. 모든 항목을 얻고 싶다면 왜'return $ albix; – emotality

관련 문제