如何使用 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 将输入字段与列数据库中的数据匹配?的主要内容,如果未能解决你的问题,请参考以下文章

如何在php laravel中用户选择无线电输入的字段中隐藏或显示?

如何在 Laravel 中读取 FormData 对象

提交后如何禁用输入字段

如何在提交后禁用输入字段

php Laravel - 在多个选择输入字段中串行的数组

2017-06-29在登录页面自动返回上次请求页面Js获取table中的行数与列数