在Laravel 5.6中创建或更新,提供“可填写”异常消息

时间:2018-05-01 07:46:22

标签: laravel 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].

2 个答案:

答案 0 :(得分:2)

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

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

有关此主题的更多信息,请访问here

答案 1 :(得分:0)

您只需在模型文件中添加以下代码即可:-

protected $guarded = [];

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

希望这会有所帮助:)