不能将相同的值组合在一起

时间:2018-02-20 05:05:26

标签: php html mysql database laravel

所以我有一个功能:

public function checkTS(Request $request, $companyID)
{
  $data = DiraQuestion::where('status', 0)->get();

  return view('AltHr.Chatbot.checkTS', compact('data','companyID'));
}

从这里输出一个像:

的表格
<table id="myTable" class="table table-striped">
  <thead>
    <tr>
      <th></th>
      <th>Entity Type</th>
      <th>Entity Value</th>
      <th>Synonym</th>
      <th></th>
    </tr>
  </thead>
  <tbody>
  @foreach($data as $b)
    <tr>
      <td><input type="hidden" name="id" value="{{ $b->id }}" readonly></td>
      <td>{{ucwords(strtok($b->eType, '_'))}}</td>
      <td>{{ucwords($b->eVal)}}</td>
      <td>{{ucwords($b->synonym)}}</td>
      <td><a href="{{action('AltHr\Chatbot\ChatbotController@viewTS', [$companyID, $b->id, $b->eType, $b->eVal])}}" class="btn alt-btn alt-btn-black">View</a></td>
    </tr>
  @endforeach
  </tbody>
</table>

目前,它向我显示输出如下: output

我的数据库看起来像: db

从第一张图片中我可以看到我想要做的是将它们组合在一起,它具有相同的意图,eType,eVal来自数据库,所以不应该显示表中的所有值,它应该只显示1个值,即已经被相同的3个值组合在一起。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

您必须在查询中使用group by。

public function checkTS(Request $request, $companyID)
 {
   $data = DiraQuestion::where('status', 0)
          ->groupBy('Your-cloumn')->get();

   return view('AltHr.Chatbot.checkTS', compact('data','companyID'));
 }

希望这有帮助

答案 1 :(得分:0)

您可以通过 groupBy('cloumn name')

对相同类型的值进行分组
public function checkTS(Request $request, $companyID)
 {
   $data = DiraQuestion::where('status','=','0')
          ->groupBy('Your-cloumn')->get();

   return view('AltHr.Chatbot.checkTS', compact('data','companyID'));
 }

答案 2 :(得分:0)

尝试:

  $data = DiraQuestion::where('status', 0)
            ->groupBy('intent', 'eType', eVal')
            ->get();

还要修正&{39; isn't in GROUP BY&#39;:
的错误 在config/database.phpmysql设置中,将'strict'的值更改为false:
'strict' => false,
 这将在查询时删除ONLY_FULL_GROUP_BY