mercredi 21 février 2018

ERROR: Creating default object from empty value - Laravel5.5

Thank you for all your help in the past. I recently got this error while trying to register a new user on my app. At this stage of registration, new user - after having verified email address - is now asked to enter a PIN which he purchased. Upon clicking verify pin, the following error occurs:

ERROR: Creating default object from empty value

This error points to my RegisterController line 216. Below is the part of my controller that is faulty and routes:

public function postPurchaseToken(Request $request)
  {
    $this->validate($request,['pin' => [
        'required',
        Rule::exists('activation_pins','pin')->where(function ($query) {
            $query->where('usage_count', '<', ActivationPin::MAX_USAGE_COUNT)
            ->where('is_valid',true)
            ->where('is_active',false);
        })
    ]]);

    $user = auth()->user();

    $pin = ActivationPin::wherePin($request->pin)->first();

    $pin->is_active = true;
    $pin->user_id = $user->id;
    $pin->save();

    $user->is_token_activated = true;
    $user->purchase_expiration_date = null;
    $user->save();

    return redirect()->to('/register/verify-phone-number');
}

The line 216: $pin->is_active = true;

Routes:

Route::get('/register/verify/{email_confirmation_code}','Auth\RegisterController@confirmEmail')->name('confirm-account');
Auth::routes();
Route::get('/register/purchase-token','Auth\RegisterController@getPurchaseToken');
Route::post('/register/purchase-token','Auth\RegisterController@postPurchaseToken');
Route::get('/register/verify-phone-number/{token_id?}','Auth\RegisterController@getPhoneNumber');
Route::get('/register/verify-phone-number','Auth\RegisterController@getPhoneNumber');
Route::post('/register/call-phone-number/{token_id}','Auth\RegisterController@postSendAsCall');
Route::post('/register/verify-phone-number','Auth\RegisterController@postPhoneNumber');

Route::post('/register/verify-phone-number','Auth\RegisterController@postPhoneNumber');

Route::post('/register/send-verification-sms','Auth\RegisterController@postSendSMSToPhoneNumber');
Route::get('/register/bank-details','Auth\RegisterController@getBankDetails');
Route::post('/register/bank-details','Auth\RegisterController@postBankDetails');
Route::get('/register/select-plan','Auth\RegisterController@getSelectPackage');
Route::post('/register/select-plan','Auth\RegisterController@postSelectPackage');
Route::get('/logout', 'Auth\LoginController@logout')->name('logout.get');

I'd appreciate any help I can get on this. Thanks



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire