【问题标题】:unable to validate table in controller of laravel 5.4无法验证 laravel 5.4 控制器中的表
【发布时间】:2018-01-25 11:58:12
【问题描述】:

我在控制器中具有通过 ajax 请求重复生成表的功能

我想在每次 ajax 向这个函数发出请求时验证表

当 ajax 通过单击按钮获取表格时,我如何验证表格的开始日期和法律注册号。

我的函数代码:

public  function postlawsdata()
    {
        $lawdata = Input::get('law_type_id');
        $sublawdata = Input::get('law_sub_type_id');
        $start_date = Input::get('start_date');
        $res_div = '';
        $sub_law_count = count($sublawdata);
        $validate_laws = '';
        if (count($sublawdata) > 0) {

            for ($i = 0; $i < count($lawdata); $i++) {
                $law_details = DB::table('tbl_law_master')->where('id', $lawdata[$i])->select('tbl_law_master.id as law_id', 'tbl_law_master.lm_id', 'tbl_law_master.law_name')->first();

                $sublaw_details = DB::table('tbl_law_sub_master')
                    ->where('tbl_law_sub_master.lm_id', $lawdata[$i])
                    ->whereNull('tbl_law_sub_master.deleted_at')
                    ->select('tbl_law_sub_master.id as sublaw_id', 'tbl_law_sub_master.sub_law_name', 'tbl_law_sub_master.lms_id')->get();


                if (count($sublaw_details) > 0) {
                    $res_div .= '<table width="100%" border="0"  class="table table-striped table-bordered table-hover">';
                    $res_div .= '<tr>
                                    <td colspan="2" rowspan="2">    
                                        <strong>' . $law_details->lm_id . ' (' . $law_details->law_name . ')</strong>
                                    </td>   
                                    <td >
                                        <span class="required" aria-required="true">* </span><input type="text" value="' . $start_date . '" placeholder="DD-MM-YYYY (Start Date)" name="law_start_date[]" id="law_start_date" att_law_id="' . $lawdata[$i] . '"  class="date-picker required locationformstyle locationparentsd dynamiclocationparentsd' . $lawdata[$i] . '">
</td></tr><tr><td>
                                        <span class="required" aria-required="true">* </span><input type="text" placeholder="Law Registration No." name="law_reg_no" id="law_reg_no" class="locationformstyle required">

                                    </td>
                                    </tr>';

                    foreach ($sublaw_details as $sublawdetails) {
                        if (in_array($sublawdetails->sublaw_id, $sublawdata)) {
                            $res_div .= '<tr>
            <td width="220">Start Date: <input type="text" name="sub_law_start_date[]" placeholder="DD-MM-YYYY" onfocus="this.blur()" class="locationformstyle date-picker dynamiclocationparentsd' . $lawdata[$i] . '" att_law_id="' . $lawdata[$i] . '"> </td>
            <td width="220">End Date: <input type="text"  name="sub_law_end_date[]" placeholder="DD-MM-YYYY" onfocus="this.blur()" class="locationformstyle date-picker"></td>
            <td align="left"><strong>' . $sublawdetails->lms_id . ' (' . $sublawdetails->sub_law_name . ')</strong>
            <input type="hidden" class="locationformstyle" name="company_sub_laws[]" value="' . $sublawdetails->sublaw_id . '">
            </td>
            </tr>
            ';
                        }
                    }
                    $res_div .= '</table>';
                }
            }
        } else {
            $validate_laws = 'Please Select Atleast One Law';
        }
        $data = array(
            'law_info' => $res_div,
            'validate_laws' => $validate_laws,
            'sub_law_count' => $sub_law_count
        );
        return json_encode($data);
    }  

【问题讨论】:

标签: php laravel validation


【解决方案1】:

像这样创建一个新的验证器;

public  function postlawsdata()
    {


    
        $validator = Validator::make($request->all(), [
            'start_date' => 'required',
        //add other fields here with custom validation rules
        ]);

    
        if ($validator->passes()) {

          $lawdata = Input::get('law_type_id');
        $sublawdata = Input::get('law_sub_type_id');
        $start_date = Input::get('start_date');
        $res_div = '';
        $sub_law_count = count($sublawdata);
        $validate_laws = '';
        if (count($sublawdata) > 0) {

            for ($i = 0; $i < count($lawdata); $i++) {
                $law_details = DB::table('tbl_law_master')->where('id', $lawdata[$i])->select('tbl_law_master.id as law_id', 'tbl_law_master.lm_id', 'tbl_law_master.law_name')->first();

                $sublaw_details = DB::table('tbl_law_sub_master')
                    ->where('tbl_law_sub_master.lm_id', $lawdata[$i])
                    ->whereNull('tbl_law_sub_master.deleted_at')
                    ->select('tbl_law_sub_master.id as sublaw_id', 'tbl_law_sub_master.sub_law_name', 'tbl_law_sub_master.lms_id')->get();


                if (count($sublaw_details) > 0) {
                    $res_div .= '<table width="100%" border="0"  class="table table-striped table-bordered table-hover">';
                    $res_div .= '<tr>
                                    <td colspan="2" rowspan="2">    
                                        <strong>' . $law_details->lm_id . ' (' . $law_details->law_name . ')</strong>
                                    </td>   
                                    <td >
                                        <span class="required" aria-required="true">* </span><input type="text" value="' . $start_date . '" placeholder="DD-MM-YYYY (Start Date)" name="law_start_date[]" id="law_start_date" att_law_id="' . $lawdata[$i] . '"  class="date-picker required locationformstyle locationparentsd dynamiclocationparentsd' . $lawdata[$i] . '">
</td></tr><tr><td>
                                        <span class="required" aria-required="true">* </span><input type="text" placeholder="Law Registration No." name="law_reg_no" id="law_reg_no" class="locationformstyle required">

                                    </td>
                                    </tr>';

                    foreach ($sublaw_details as $sublawdetails) {
                        if (in_array($sublawdetails->sublaw_id, $sublawdata)) {
                            $res_div .= '<tr>
            <td width="220">Start Date: <input type="text" name="sub_law_start_date[]" placeholder="DD-MM-YYYY" onfocus="this.blur()" class="locationformstyle date-picker dynamiclocationparentsd' . $lawdata[$i] . '" att_law_id="' . $lawdata[$i] . '"> </td>
            <td width="220">End Date: <input type="text"  name="sub_law_end_date[]" placeholder="DD-MM-YYYY" onfocus="this.blur()" class="locationformstyle date-picker"></td>
            <td align="left"><strong>' . $sublawdetails->lms_id . ' (' . $sublawdetails->sub_law_name . ')</strong>
            <input type="hidden" class="locationformstyle" name="company_sub_laws[]" value="' . $sublawdetails->sublaw_id . '">
            </td>
            </tr>
            ';
                        }
                    }
                    $res_div .= '</table>';
                }
            }
        } else {
            $validate_laws = 'Please Select Atleast One Law';
        }
        $data = array(
            'law_info' => $res_div,
            'validate_laws' => $validate_laws,
            'sub_law_count' => $sub_law_count
        );
        return json_encode($data);

    

        }

    
        return response()->json(['error'=>$validator->errors()->all()]);
    }

在顶部添加use Validator;

【讨论】:

  • 将 $request 替换为 request()
  • 兄弟,当我提交表单时,我看不到我的桌子
  • 数据没有通过验证,检查验证规则。
猜你喜欢
  • 1970-01-01
  • 2017-09-20
  • 2017-09-18
  • 2017-12-17
  • 2021-11-30
  • 1970-01-01
  • 2018-01-29
  • 1970-01-01
  • 2017-11-13
相关资源
最近更新 更多