我已经编写了一个代码来查看数据,但我遇到了一些问题。
从代码中,我写了它正在查看一个表$details
的数据。但我也想查看$ detailsAns中的数据。
我该怎么做?另外,我可以foreach
来自这两个表的两个数据吗?
我的代码如下:
public function queries($companyID, $entityType, $entityValue)
{
$data = [];
$details = DiraQuestion::where('company_id', $companyID)->where('eType', $entityType)->where('eVal', $entityValue)->get();
$detailsAns = DiraResponses::where('company_id', $companyID)->where('eType', $entityType)->where('eVal', $entityValue)->get();
foreach($details as $key => $detailsValue)
{
if(!array_key_exists($detailsValue->intent, $data))
{
$data[$detailsValue->intent] = [];
}
if(!array_key_exists($detailsValue->reply, $data[$detailsValue->intent]))
{
$data[$detailsValue->intent]['answer'][$detailsValue->reply] = $detailsValue->id;
}
if(!array_key_exists($detailsValue->queries, $data[$detailsValue->intent]))
{
$data[$detailsValue->intent]['question'][$detailsValue->queries] = $detailsValue->id;
}
}
ksort($data);
return view('AltHr.Chatbot.queries', compact('data','entityType','entityValue','companyID'));
}
因为您可以看到我可以从foreach
返回$details
的数据,但现在我还想返回$ detailsAns的数据。我怎么能这样做?
我的数据库结构:
所以要获取数据首先必须选择公司ID,eType,eVal和intent,所以现在我需要显示回复和查询。
所以你可以看到我可以在foreach中输出问题表。如果我将foreach更改为$ detailsAns然后我显示回复..但我现在要查看两者
答案 0 :(得分:1)
从提供的表格如何相互关联的数据中不是很清楚。如果答案与问题具有相同的id
值,则很容易通过构造数组来关联它们,以便它们由公共值键入。
$data = [];
$details = DiraQuestion::where('company_id', $companyID)->where('eType', $entityType)->where('eVal', $entityValue)->get();
foreach ($details AS $datum) {
if (!isset($data[$datum->intent])) $data[$datum->intent] = ['question' => [], 'answer' => []];
$data[$datum->intent]['question'][$datum->id] = $datum->queries;
}
$detailsAns = DiraResponses::where('company_id', $companyID)->where('eType', $entityType)->where('eVal', $entityValue)->get();
foreach ($detailsAns AS $datum) {
if (!isset($data[$datum->intent])) $data[$datum->intent] = ['question' => [], 'answer' => []];
$data[$datum->intent]['answer'][$datum->id] = $datum->reply;
}
此时,由于您说数据集之间没有关系,只需将data
数组传递给您已有的视图:
return view('AltHr.Chatbot.queries', compact('data','entityType','entityValue','companyID'));
循环遍历两个数据元素,在视图中打印出值:
@foreach ($data['approval-document']['question'] as $id=>$question)
<p>Question #{{ $id }}: {{ $question }}</p>
@endforeach
@foreach ($data['approval-document']['answer'] as $id=>$answer)
<p>Answer #{{ $id }}: {{ $answer }}</p>
@endforeach