我有一个方法:
public function winnerDetails()
{
$winners = DB::table('winners')->get();
//dd($winners);
foreach ($winners as $winner) {
$qrMainId = $winner->qrdetails_id;
}
dd($qrMainId);
}
dd($winners);
返回array
的值但是当我使用foreach
时,它会返回一个值。如何通过foreach
循环获得返回值?
dd($winners)
输出:
和dd($qrMainId);
返回一个值44
。但是它应该返回数组35
的另一个值;提前谢谢。
答案 0 :(得分:1)
获取ID的数组
foreach ($winners as $winner) {
$qrMainId[]= $winner->qrdetails_id;
仅用于价值
$qrMainId='';
foreach ($winners as $winner) {
$qrMainId.= $winner->qrdetails_id;
答案 1 :(得分:0)
如果您想以Laravel方式完成此任务,请使用pluck方法将数组映射到您想要的键
<?php
public function winnerDetails()
{
$winnersId = DB::table('winners')->get()->pluck('qrdetails_id');
dd($winnersId);
}
答案 2 :(得分:0)
我认为你没有在这里利用Laravel的力量。显然,我不知道你要做什么,但这里有一些指示。
你可能应该为Laravel返回集合中的获胜者表现在模型制作the react docs,就像你现在使用的数据库外观一样。现在,Collection类包含许多有用的帮助程序,如model
此时它变得像Winner::all()->pluck('id')
一样简单,你得到了一个id的数组。
如果你想让它们以逗号分隔或类似,你可以使用pluck
你会得到Winner::all()->implode('id',',');
答案 3 :(得分:0)
$ qrMainId是一个不是数组的变量。
在每个循环期间在foreach中进行修改。
所以你的代码总是数组的最后一个元素。
使用数组来收集
之类的值$qrMainId[] = $winner->qrdetails_id;
或sql直接选择你想要的字段。