Laravel 碳始终设置为 0000-00-00
Laravel carbon always set to 0000-00-00
我需要在我的数据库中存储一个到期日期,以便在 he/she 尝试登录时检查用户帐户是否仍然有效。
这是我的用户模型:
class User extends Model implements AuthenticatableContract, CanResetPasswordContract {
use Authenticatable, CanResetPassword;
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';
protected $dates = [
'expiration_date'
];
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'first_name',
'last_name',
'email',
'password',
'expiration_date'
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = [
'password',
'remember_token'
];
/**
* Questa funzione fa in modo di criptare in automatico la password quando si crea un utente
*
* @param $password
*
* @return string
*/
public function setPAsswordAttribute( $password )
{
return $this->attributes['password'] = bcrypt( $password );
}
public function setExpirationDateAttribute( $expiration )
{
return $this->attributes['expiration_date'] = Carbon::createFromDate('Y-m-d', $expiration);
}
}
在我的表单中,我有一个文本输入,它使用日期选择器以 dd/mm/yyyy
格式设置表格。
当我在数据库中按提交时,我只得到 0000-00-00 00:00:00
问题是什么?
As you can see 从代码中,Carbon::createFromDate($year = null, $month = null, $day = null, $tz = null)
方法接受 4 个参数,而您正在向它传递无效参数。
我相信您正在寻找的方法是 Carbon::createFromFormat($format, $time, $tz)
,它接受格式、带日期或时间的字符串和 DateTimeZone 实例或字符串时区作为参数。
我需要在我的数据库中存储一个到期日期,以便在 he/she 尝试登录时检查用户帐户是否仍然有效。
这是我的用户模型:
class User extends Model implements AuthenticatableContract, CanResetPasswordContract {
use Authenticatable, CanResetPassword;
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';
protected $dates = [
'expiration_date'
];
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'first_name',
'last_name',
'email',
'password',
'expiration_date'
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = [
'password',
'remember_token'
];
/**
* Questa funzione fa in modo di criptare in automatico la password quando si crea un utente
*
* @param $password
*
* @return string
*/
public function setPAsswordAttribute( $password )
{
return $this->attributes['password'] = bcrypt( $password );
}
public function setExpirationDateAttribute( $expiration )
{
return $this->attributes['expiration_date'] = Carbon::createFromDate('Y-m-d', $expiration);
}
}
在我的表单中,我有一个文本输入,它使用日期选择器以 dd/mm/yyyy
格式设置表格。
当我在数据库中按提交时,我只得到 0000-00-00 00:00:00
问题是什么?
As you can see 从代码中,Carbon::createFromDate($year = null, $month = null, $day = null, $tz = null)
方法接受 4 个参数,而您正在向它传递无效参数。
我相信您正在寻找的方法是 Carbon::createFromFormat($format, $time, $tz)
,它接受格式、带日期或时间的字符串和 DateTimeZone 实例或字符串时区作为参数。