<?php
namespace App;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
class UserInformation extends Model {
/**
* The table associated with the model.
*
* @var string
*/
protected $table = "user_information";
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'title',
'first_name',
'last_name',
'img_path',
'born',
'gender',
'address',
'country_id',
'about',
'institution',
'area_of_expertise',
'cv_path',
'facebook',
'twitter',
'instagram',
'linkedin',
'university',
'university_graduated_at',
'md',
'md_graduated_at',
'associate_professor',
'associate_professor_graduated_at'
];
public function setBornAttribute($date) {
$this->attributes['born'] = Carbon::createFromFormat('Y-m-d', $date);
}
public function users() {
return $this->belongsTo('App\User', 'user_id', 'id');
}
}
エラー:Laravel定義Aミューテータ
は、更新する方法:SQLSTATE [22007]:無効日時書式:1292誤った日付値:行1で生まれた列の ''26/1988' 分の10 (SQL :更新
user_information
public function updateUser($request, $id) {
$user = User::with('userInformation')->findOrFail($id);
$user->update(array_filter($request->all()));
$user->userInformation()->update(array_filter($request->only([
'title',
'first_name',
'last_name',
'img_path',
'born',
'gender',
'address',
'country_id',
'about',
'institution',
'area_of_expertise',
'cv_path',
'facebook',
'twitter',
'instagram',
'linkedin',
'university',
'university_graduated_at',
'md',
'md_graduated_at',
'associate_professor',
'associate_professor_graduated_at'
]), 'strlen'));
return User::with('userInformation')->findOrFail($id);
}
私は生まれた日付d/m/Y形式をユーザーインターフェイスから送信します。私はMySQLでこのデータを格納する際に、私はY-M-Dに再フォーマットするVEの..
Iはミューテータをグーグルとが見つかりました: https://laravel.com/docs/5.3/eloquent-mutators
Iは、ユーザ情報モデルにsetNameAttribute機能を追加しました。そして私はそのページをリフレッシュして、もう一度試しました。しかし何も変わっていない。私は同じエラーがあります。
この問題を解決するにはどうすればよいですか?
p.s. :私はあなたが以下のようにモデルに$ DATEFORMATプロパティを設定する必要がありますLaravel 5.3
あなたは、私は、コードをデバッグ –