Laravel也有同样的记录

时间:2018-06-18 11:12:21

标签: php mysql laravel

我正在尝试使用laravel从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

但是错误地获得4个结果。获得:

  • AUTHD_ID1 log1
  • AUTHD_ID1 log2
  • AUTHD_ID2 log1
  • AUTHD_ID2 log2

应该是:

  • AUTHD_ID1 log1
  • AUTHD_ID2 log2

怎么了?

3 个答案:

答案 0 :(得分:3)

由于你在foreach中有一个foreach,因此它是重复的。

尝试以下代码。

B cr = new B();
cr.C.BackColor = Color.FromArgb(0, 0, 255);

答案 1 :(得分:0)

尝试以下

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

答案 2 :(得分:0)

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

$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中收到错误