Javascript 使用Ajax Laravel,当日期选择器为空时,在数据库中插入NULL
我使用laravel,在我看来,我有一个输入日期选择器,如下所示:Javascript 使用Ajax Laravel,当日期选择器为空时,在数据库中插入NULL,javascript,ajax,database,laravel,datepicker,Javascript,Ajax,Database,Laravel,Datepicker,我使用laravel,在我看来,我有一个输入日期选择器,如下所示: {!! Form::text('DESMES_Date_Analyses',null ,['class' => 'form-control datepicker']) !!} var date_analyses = $(this).find("input[name=DESMES_Date_Analyses]").val(); 使用此代码: $('.datepicker').datepicker({ fo
{!! Form::text('DESMES_Date_Analyses',null ,['class' => 'form-control datepicker']) !!}
var date_analyses = $(this).find("input[name=DESMES_Date_Analyses]").val();
使用此代码:
$('.datepicker').datepicker({
format: 'yyyy-mm-dd',
todayHighlight: true,
language : 'fr'
});
我用这样的方法得到值:
{!! Form::text('DESMES_Date_Analyses',null ,['class' => 'form-control datepicker']) !!}
var date_analyses = $(this).find("input[name=DESMES_Date_Analyses]").val();
之后,我使用Ajax请求在数据库中插入值:
$.ajax({
url: './register',
headers: {'X-CSRF-TOKEN': token},
data: {
DESMES_Date_Analyses : date_analyses
},
type: 'POST',
datatype: 'JSON'
)};
在我的控制器中,我执行以下操作:
public function register(Request $request) {
if($request->ajax()) {
Mesures::create($request->all());
}
}
但是如果该值为空,则在我的数据库中有1900-01-01,我只希望为NULL而不是此默认日期。
我该怎么做
我试图在javascript中将date_分析设置为null,然后将其发送到我的控制器,但它不起作用。。。谢谢大家! 我认为这是您的数据库表,它插入1900-01-01,而日期分析传递了空值。所以检查一下。我想这是您的数据库表,它插入1900-01-01,同时为日期分析传递了一个空值。因此,请检查一次。首先,您必须在要设置为null的表字段上设置
null()
:
$table->date('DESMES_Date_Analyses')->nullable();
有些事情要考虑的是,
- 该字段不能是唯一的
DESMES\u Date\u analysis
,则查询将排除DESMES\u Date\u analysis
,并将字段设置为NULL。这意味着查询可能如下所示:
insert into the_table ('name') values ('some name'); //excluding the field `DESMES_Date_Analyses`
首先也是最重要的一点是,必须在要使其可为null的表字段上设置
nullable()
:
$table->date('DESMES_Date_Analyses')->nullable();
有些事情要考虑的是,
- 该字段不能是唯一的
DESMES\u Date\u analysis
,则查询将排除DESMES\u Date\u analysis
,并将字段设置为NULL。这意味着查询可能如下所示:
insert into the_table ('name') values ('some name'); //excluding the field `DESMES_Date_Analyses`
我找到了解决方案:在我的控制器中,就在请求插入之前,我放入:
if($request->DESMES_Date_Analyses==""){$request->offsetSet('DESMES_Date_Analyses', NULL);}
我找到了解决方案:在我的控制器中,就在请求插入之前,我放入:
if($request->DESMES_Date_Analyses==""){$request->offsetSet('DESMES_Date_Analyses', NULL);}
您可以传递空值的
NULL
instate
注意:列必须可以为空
您可以传递空值的
NULL
instate
注意:列必须可以为空
“date_Analysis”真的为空吗?是的,如果date_Analysis不为空,我尝试在javascript中将其直接设置为null,然后将其发送到我的控制器,但我得到的相同结果是“date_Analysis”真的为空吗?是的,如果date_Analysis不为空,在将其发送到控制器之前,我尝试在javascript中将其直接设置为null,但结果相同。当我在数据库中尝试使用SQL时,我可以为该列插入null。表中该列的字段类型是什么?是否分配了任何默认值?同样在控制器中,使日期为空。像这样检查dd($this->date\u analysys)当我在数据库中尝试使用SQL时,我可以为该列插入NULL该列在表中的字段类型是什么?是否分配了任何默认值?同样在控制器中,使日期为空。像这样检查dd($this->date\u analysys)