Laravel 1048 Column在存储数据时不能为NULL

时间:2014-06-24 16:26:35

标签: php mysql laravel

当我尝试保存新联系人时,我发现1048 Column 'username' cannot be NULL错误。很明显,这个错误的原因是username的空值,但是我想在没有将列设置为NULL或检查username POST数据是否为空的情况下使其工作清空,然后将其值设置为''

我已经看过很多例子,其中在保存到数据库之前,列未设置为NULL和/或数据未设置为''

或许我错了,我错过了什么?

我希望有人可以发表评论..

$contact = new Contact;
$contact->name      = Input::get('name'); 
$contact->username  = Input::get('username');
$nerd->save();

4 个答案:

答案 0 :(得分:3)

为Input变量设置默认的非空值。

$contact = new Contact;
$contact->name      = Input::get('name');
$contact->username  = Input::get('username', false);
$nerd->save();

答案 1 :(得分:1)

将值0存储到用户名

$contact = new Contact;
$contact->name      = Input::get('name');
$contact->username  = Input::get('username', false);
$nerd->save();

答案 2 :(得分:0)

您可以使用模型事件(http://laravel.com/docs/eloquent#model-events)。

当联系人为creatingupdating时,您可以测试用户名是否为空,并在将其写入数据库之前将其更改为''

答案 3 :(得分:0)

我遇到了同样的问题。视图页面中的“字段名称”和数据库的列名称无关紧要。我的问题是:

"Integrity constraint violation: 1048 Column 'MoneyMethod' cannot be null".

我的观看页面输入标记:

{!! Form::select("MoneyMethod", $MoneymethodInfo, null,["class"=>"form-control MoneyMethod required","id"=>"MoneyMethod"]) !!},

注意我的数据库表$table->string('MoneyMethod', 100);中'MoneyMethod'的拼写拼写方法与查看页面相同但在我的控制器中

$riskfund->Moneymethod  = Input::get('Moneymethod');

仔细查看“Moneymethod”的拼写与视图页面和数据库tabel列的不同之处。纠正拼写后,它现在正在运行。

因此,请检查表单,控制器,数据库表中“用户名”的拼写。