php - 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 :插入
bonds
(investment
、、、、、、、、、、、、、、、、、、、、、、、, , , , , , , ) 值 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 27.5, ?, 1, ?, 1, 1, 1, 1, 1, ?, ?, ?, ?, ?, ?, 2020-01-26 04:02:42, 2020-01-26 04:02:42))investment_name
i_id
price
p_goal
c_date
c_date2
c_date3
agreement
goal_in
goal_out
c_date4
invest_date
p_price
t_price
contract
c_date5
confirm1
confirm2
confirm3
confirm4
confirm5
law_office
etc
address
phone
birth
updated_at
created_at
解决方案
可以为空,但是您的request('investment')
字段不能为空investment
。bonds
所以你可以使用验证器来检查字段。或者在这个字段中设置默认值。
使用验证器:
尝试像这样使用验证器:
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();
推荐阅读
- android - 布局中奇怪的白色区域
- python - How can I find an element looping through a list of divs using Selenium?
- security - ANTLR4 : Does it write anything to local file system while lexing and parsing?
- c++ - Is it possible to use a smart ptr or boost intrusive ptr as the "void* tag" value in a gRPC async server written in C++
- java - JDK 11 PreMaster Secret debugging
- mysql - 使用 mysql 从 Wordpress 网站在 Laravel 应用程序中插入数据
- flutter - Flutter_Swiper 文本覆盖图像
- sql - Oracle父子查询
- sql - 使用 SQL 计算 Fifo
- android - 如何避免本地 Web 应用程序数据被擦除?