首页 > 解决方案 > Laravel 中的表单请求

问题描述

1.laravel表单请求中的问号怎么处理?

2.我应该为每个输入标签设置默认值吗?

创建.blade.php

<form class="form-horizontal row-fluid" name="user_input_form" action="/bonds" method="POST">
  @csrf
  <p><strong>Apply</strong></p>
  <div class="control-group">
      <label class="control-label">investment</label>
      <div class="controls">
          <div class="input-append">
              <input type="text" name="investment" id="investment" placeholder="" class="w-full span12">
          </div>
      </div>
  </div>
  <div class="control-group">
      <label class="control-label">investment_name</label>
      <div class="controls">
          <div class="input-append">
              <input type="text" name="investment_name" id="investment_name" placeholder="" class="span12">
          </div>
      </div>
  </div>
  <div class="control-group">
      <label class="control-label">i_id</label>
      <div class="controls">
          <div class="input-append">
              <input type="text" name="i_id" id="i_id" placeholder="" class="span12">
          </div>
      </div>
  </div>
  <div class="control-group">
      <label class="control-label">price</label>
      <div class="controls">
          <div class="input-append">
              <input type="text" value="" name="price" id="price" placeholder="" class="span12" onchange="getagreement();"><span class="add-on"></span>
          </div>
      </div>
  </div>

债券控制器.php

public function store(Request $request)
    {

      $bond = Bond::create([
          'investment' => request('investment'),
          'investment_name' => request('investment_name'),
          'i_id' => request('i_id'),
          'price' => request('price'),
          'p_goal' => request('p_goal'),
          'c_date' => request('c_date'),
          'c_date2' => request('c_date2'),
          'c_date3' => request('c_date3'),
          'agreement' => request('agreement'),
          'goal_in' => request('goal_in'),
...
}

像这样的错误

Illuminate \Database\ QueryException SQLSTATE [ 23000 ] :完整性约束违规:1048列“投资”不能为空(SQL :插入bondsinvestment、、、、、、、、、、、、、、、、、、、、、、、, , , , , , , ) 值 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 27.5, ?, 1, ?, 1, 1, 1, 1, 1, ?, ?, ?, ?, ?, ?, 2020-01-26 04:02:42, 2020-01-26 04:02:42))investment_namei_idpricep_goalc_datec_date2c_date3agreementgoal_ingoal_outc_date4invest_datep_pricet_pricecontractc_date5confirm1confirm2confirm3confirm4confirm5law_officeetcaddressphonebirthemailupdated_atcreated_at

标签: phphtmllaravel

解决方案


可以为空,但是您的request('investment')字段不能为空investmentbonds所以你可以使用验证器来检查字段。或者在这个字段中设置默认值。

使用验证器:

尝试像这样使用验证器

public function store(Request $request)
    {
      $this->validate($request, [
          'investment' => 'required',
          ...
      ]);


      $bond = Bond::create([
          ....
}

设置默认值:

$bond = Bond::create([
   'investment' => $request->input('invenstment', 'your_default_value');
   ...
]);

将字段更改为可为空:

$table->string('investment')->nullable();

推荐阅读