在 Laravel 5.6 中创建或更新给出 "fillable" 异常消息

Create or Update in Laravel 5.6 giving "fillable" exception message

我有以下代码:-

$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].

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

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

我们提供了有关此主题的更多信息 here

您只需在模型文件中添加以下代码即可完成此操作:-

protected $guarded = [];

像这样

class AppToken extends Model
{
     protected $guarded = [];
     public function fun_name()
     {
          //function code 
     }
}

希望这会有所帮助:)