2017-09-24 27 views
0

這是我的查詢:循環檢索結果只有一個在Laravel與Yajra的DataTable

$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

如果你想獲得第一個結果只用'first()'替換你的'get()' – 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

,因爲如果語句沒有運行else停止你的循環 我看不到你的完整代碼,但 ' $ data = []; foreach($ albix as $ a){ $ data [$ a-> id] = $ albi-> id == $ a-> id? 'alert-warning':''; } 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

對不起,我看到你想檢索多個項目。你能展示一個你想要的結果的例子,所以我可以用這種方式編碼。如果你只想獲得所有物品,爲什麼不''返回$ albix;'? – emotality

相關問題