2017-02-21 9 views
0

Iは、フォームにこのフィールドを有する:NULL値()

<label>Office Phone:</label><br> 
<input type="number" name="office_phone" value="{{ old('office_phone') }}" class="form-control"><br> 
    @if ($errors->has('office_phone')) 
       <span class="help-block"> 
         <strong>{{ $errors->first('office_phone') }}</strong> 
       </span> 
    @endif 

このフィールドは必須ではありません。入力がない場合、データベースにNull値を挿入することになっています。

私はこの検証ルールがあります。

'office_phone'=>'integer', 

と()メソッドを作成:何も入力が指定されていない場合

return User::create([ 
    'office_phone'=>$data['office_phone] 

しかし、ヌルを値が挿入されていない:それはエラーを与える:

Invalid datetime format: 1366 Incorrect integer value: '' for column 'office_phone' at row 1

ただし、office_phoneに値がある場合は、正しく挿入されます。何が間違っているのですか?

答えて

1

:これを試してみてください。だからこのエラーは整数列のような値を許可されていませんが、varcharのためにその罰金をスローします。デフォルトを設定するには、MySQLで

1

データを入力しないと、値は空白になり、"" != NULLになります。したがって、値が空白の場合はnullに置き換えてください。ときに無価値MYSQLで空の値であるその渡し空の文字列''何が起こっているのか、あなたの場合には(return User::create()前)

$data['office_phone'] = $data['office_phone'] === ""?NULL:$data['office_phone'];