2017-09-24 29 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

相关问题