Laravel从表单输入中将“null”插入数据库。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel从表单输入中将“null”插入数据库。相关的知识,希望对你有一定的参考价值。
这是一个我遇到的奇怪问题。我有一个表单,其中包含First,Last,Title,Email和Phone,它将数据和输入信息输入到我在数据库中设置的ContactPerson表中。
当我填写表单并点击提交时,只有标题,电子邮件和电话号码才能正确插入数据库。名字和姓氏插入为NULL。
这是我使用phpstorm和Laravel 2.5.3的一些代码
我的创建新联系人视图:
<h1 style="text-align:center;">Add A New Contact Person</h1>
<hr/>
{!! Form::open(['url' => '/create']) !!}
<span style="text-align:center;align-content:right;display:block; margin-right:auto;margin-left:auto;">
<div class="form">
{!! Form::label('first', 'First Name: ') !!}
{!! Form::text('First', null, ['class' => 'form']) !!}
</div>
<div class="form">
{!! Form::label('last', 'Last Name: ') !!}
{!! Form::text('Last', null, ['class' => 'form']) !!}
</div>
<div class="form">
{!! Form::label('title', 'Title: ') !!}
{!! Form::text('Title', null, ['class' => 'form']) !!}
</div>
<div class="form">
{!! Form::label('email', 'Email: ') !!}
{!! Form::text('Email', null, ['class' => 'form']) !!}
</div>
<div class="form">
{!! Form::label('phone', 'Phone: ') !!}
{!! Form::text('Phone', null, ['class' => 'form']) !!}
</div>
{!! Form::submit('Submit', ['class' => 'btn btn-primary form']) !!}
</span>
{!! Form::close() !!}
这是我创建的名为ResourceController的控制器:
class ResourceController extends Controller
{
public function resource()
{
$contacts = ContactPerson::all();
return view('pages.resource', compact('contacts'));
}
public function create()
{
return view('pages.create');
}
public function store(RequestsCreateNewContactRequest $request)
{
ContactPerson::create($request->all());
return redirect('resource');
}
}
这是我在表单的CreateNewContactRequest类中设置的验证:
public function rules()
{
return [
'First' => 'required|min:2',
'Last' => 'required|min:1',
'Title' => 'required|min:2',
'Email' => 'required|Email|unique:users',
'Phone' => 'required|numeric|min:9'
];
}
这是我填写/提交表格时的样子。
答案
查看转储详细信息,您的字段名称需要与您的表单名称匹配,反之亦然,因此您的表单名称需要更改为:
<div class="form">
{!! Form::label('first', 'First Name: ') !!}
{!! Form::text('First_Name', null, ['class' => 'form']) !!}
</div>
<div class="form">
{!! Form::label('last', 'Last Name: ') !!}
{!! Form::text('Last_Name', null, ['class' => 'form']) !!}
</div>
对于字段名称First_Name
的EG,您的输入需要命名为相同的name="First_Name"
还要确保您的可填写详细信息也是正确的
protected $fillabel = ['First_Name','Last_Name','Title','Email','Phone'];
以上是关于Laravel从表单输入中将“null”插入数据库。的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 5.5 中将数据插入表格并获取电子邮件通知?
在使用 VB.NET 的 Access 中将空字符串字段插入为 null
Angular - 在 Zeppelin 中将动态表单内容插入数据库
如何在 Laravel 中将数据从 1 个视图插入到 2 个表中