laravel foreach同一记录多个

ijnw1ujt  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(217)

我想从mysql和拉威尔那里获取一些信息。我的控制器:

$match->message = DB::table('log')->where('match_id', '=', $match->match_id)->get(['message']);

$match->authid = DB::table('log')->where('match_id', '=', $match->match_id)->get(['authid']);

我的刀:

@foreach ($match->authid as $username)
@foreach ($match->message as $text)
{{ $username->authid }} {{ $text->message }}<br />
@endforeach
@endforeach

但是得到的结果不正确。得到:
身份验证1 log1
身份验证\u id1 log2
授权id2 log1
验证id2 log2
应该是:
身份验证1 log1
验证id2 log2
怎么了?

nzkunb0c

nzkunb0c1#

试试下面

$match->message = DB::table('log')->where('match_id', '=', $match->match_id)->get(['message','authid']);
@foreach ($match->message as $text)
{{ $text->authid }} {{ $text->message }}
@endforeach
cgvd09ve

cgvd09ve2#

如果只需要两个字段数据,则不必在多变量中构建两个查询,您可以执行以下操作:

$data = DB::table('log')->where('match_id', '=', $match->match_id)->get(['authid','message']);

@if ($data)
    @for ($i = 0; $i < count($data); $i++)
        {{ $data[$i]->authid }} {{ $data[$i]->message }}
    @endfor
@endif

使用上面的代码你永远不会出错 foreach 如果你没有从 $data 变量

w1e3prcc

w1e3prcc3#

因为在foreach中有foreach,所以它被复制了。
请尝试下面的代码。

$matches = DB::table('log')->where('match_id', '=', $match->match_id)->get();

@foreach ($matches as $match)
{{ $match->authid }} {{ $match->message }}<br />
@endforeach`

相关问题