如何使用 PHP Laravel 将输入字段与列数据库中的数据匹配?
Posted
技术标签:
【中文标题】如何使用 PHP Laravel 将输入字段与列数据库中的数据匹配?【英文标题】:How to match the input field with the data inside the column database using PHP Laravel? 【发布时间】:2020-04-30 19:31:52 【问题描述】:我有一个名为“policy_no”的输入字段。所以从这个组中,我想选择包含任何输入的列。输入可能是“12345 12346 12347”。我已经将 LIKE 语句放在 sql 中,但它仍然选择所有列。由于我一次输入了多个 policy_no,因此似乎无法识别哪一列包含 policy no。那么,如何从中选择数据库呢?或者我应该对输入字段进行子串化?
这是我的 view.blade.php
<div class="form-group">
<label>Policy No</label>
<textarea name="policy_no" value="$items->policy_no" type="text" class="form-control"></textarea>
</div>
这是我的控制器。
public function Exported(Request $request)
$item = InsuranceEnrollment::find($request->policy_no);
$policy_no = $request->get('policy_no');
$group1 = $request->get('group');
if (InsuranceEnrollment::where('policy_no', 'LIKE','%". $policy_no ."%')->where('insurance_enrollments.exported', '=', '0')->exists())
$item = DB::table('insurance_enrollments')->update(['exported' => 1, 'group' => $group1]);
\Session::flash('message', 'The policy number is successfully exported');
return redirect()->route('admin-insurance.sales');
【问题讨论】:
您是否总是使用空格来分隔不同的保单编号12345 7865, 67976
??
是的,我必须将它们分开。 @prakashchhetri
【参考方案1】:
如果您总是使用空格来分隔数字,我相信您可以使用 explode()
根据空格分隔输入字符串。
然后,您可以使用whereIn
获取与展开数组中的 ID 匹配的所有策略项。
public function Exported(Request $request)
$policyNumbers = explode ( ' ' , $request->policy_no);
$items = InsuranceEnrollment::whereIn('policy_no', $policyNumbers)->get();
【讨论】:
这行不通。它仍然选择输入列中不存在的所有其他策略。以上是关于如何使用 PHP Laravel 将输入字段与列数据库中的数据匹配?的主要内容,如果未能解决你的问题,请参考以下文章