首页 > 解决方案 > 在 Laravel 5.6 中创建或更新给出“可填充”异常消息

问题描述

我有以下代码: -

$token = encrypt($guuid);
$tokenDetail = AdminConfig::select('config_value')
                ->where(array(
                        'config_key'    => 'expiry_duration',
                        'is_delete'     => 0
                ))->first();
$expiryDuration = $tokenDetail['config_value']; 
$expiryTime = date("dmyHis", time() + $expiryDuration);
$created_at = date('Y-m-d H:i:s');
$tokenUpdated = AppToken::updateOrCreate(array(
                             'user_id' => $user_id, 
                             'token' => $token),
                               array('expiry'=>$expiryTime,
                               'created_date'=>$created_at,
                               'modified_date'=>$created_at)
                    );
if($tokenUpdated)
{
    $return['status'] = 1;
    $return['token'] = $token;
}
else
{
    $return['status'] = 0;
    $return['token'] = $token;
}
return $return;

我正在使用该updateOrCreate方法,以便如果记录存在,那么它将被更新。否则它将被创建。

我收到一条异常消息,

Add [user_id] to fillable property to allow mass assignment on [App\Http\Model\AppToken].

标签: laravellaravel-5.6

解决方案


为了能够updateOrCreate像您一样使用该方法,您必须添加user_id到类中的fillable属性,AppToken如下所示。

class AppToken extends Model
{
    /**
    * The attributes that are mass assignable.
    *
    * @var array
    */
    protected $fillable = [
        'user_id', 'token'
    ];
}

有关此主题的更多信息,请点击此处


推荐阅读