Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 调用未定义的方法illumb\Database\Query\Builder::save()-Laravel 5_Php_Laravel_Laravel 5 - Fatal编程技术网

Php 调用未定义的方法illumb\Database\Query\Builder::save()-Laravel 5

Php 调用未定义的方法illumb\Database\Query\Builder::save()-Laravel 5,php,laravel,laravel-5,Php,Laravel,Laravel 5,我想不出来。我认为它发生在我的activateAccount控制器函数中。在该函数中,我调用帐户激活的函数,在该函数中保存用户。另外,我得到了用户对象的第一个实例,所以我不知道出了什么问题 这是控制器的功能 public function activateAccount(Request $request, User $user, $key) { $registered = $request->session()->get('registered'); if (isse

我想不出来。我认为它发生在我的activateAccount控制器函数中。在该函数中,我调用帐户激活的函数,在该函数中保存用户。另外,我得到了用户对象的第一个实例,所以我不知道出了什么问题

这是控制器的功能

public function activateAccount(Request $request, User $user, $key) {
    $registered = $request->session()->get('registered');
    if (isset($registered)) {
        $request->session()->forget('registered');
        if ($user->account_activated($key)) {
            // TODO 
            $referral = Referrals::where('activation_key', $key);
            if (!empty($referral)) {
                $referral->validate = 1;
                $referral->save();
            }


            return redirect('/login')->with('success', "Your account has been activated. You many login!");
        } else {
            return redirect('/not-active');
        }
    } else {
        return redirect('/');
    }
}

account_activated function inside the User model
    public function account_activated($key){
      $user = User::where('activate_key', $key)->first();
      $user->activate = 1;
      $user->save();
      return true;
    }   
这是错误消息

BadMethodCallException in Builder.php line 2047:
Call to undefined method Illuminate\Database\Query\Builder::save()
in Builder.php line 2047
at Builder->__call('save', array())
at Builder->save()
at call_user_func_array(array(object(Builder), 'save'), array()) in Builder.php line 943
at Builder->__call('save', array()) in RegisterController.php line 155
at Builder->save() in RegisterController.php line 155
at RegisterController->activateAccount(object(Request), object(User), 'OjkTKaLIVAaRhveYRZz9rC1uAuPjUc6fk4BeZhUM')
at call_user_func_array(array(object(RegisterController), 'activateAccount'), array(object(Request), object(User), 'key' => 'OjkTKaLIVAaRhveYRZz9rC1uAuPjUc6fk4BeZhUM')) in Controller.php line 256
at Controller->callAction('activateAccount', array(object(Request), object(User), 'key' => 'OjkTKaLIVAaRhveYRZz9rC1uAuPjUc6fk4BeZhUM')) in ControllerDispatcher.php line 164
at ControllerDispatcher->call(object(RegisterController), object(Route), 'activateAccount') in ControllerDispatcher.php line 112
at ControllerDispatcher->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in ControllerDispatcher.php line 114
at ControllerDispatcher->callWithinStack(object(RegisterController), object(Route), object(Request), 'activateAccount') in ControllerDispatcher.php line 69
at ControllerDispatcher->dispatch(object(Route), object(Request), 'App\Http\Controllers\RegisterController', 'activateAccount') in Route.php line 201
at Route->runWithCustomDispatcher(object(Request)) in Route.php line 134
at Route->run(object(Request)) in Router.php line 704
at Router->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Router.php line 706
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 671
at Router->dispatchToRoute(object(Request)) in Router.php line 631
at Router->dispatch(object(Request)) in Kernel.php line 236
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in VerifyCsrfToken.php line 50
at VerifyCsrfToken->handle(object(Request), object(Closure))
at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 49
at ShareErrorsFromSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 62
at StartSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure))
at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Kernel.php line 122
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 87
at Kernel->handle(object(Request)) in index.php line 54

您得到的错误不是来自您调用的函数,而是在
activateAccount
函数本身中

特别是以下几行:

$referral = Referrals::where('activation_key', $key);
            if (!empty($referral)) {
                $referral->validate = 1;
                $referral->save();
            }
您需要在给出where子句后获取模型。从外观上看,您已经知道如何执行此操作,但为了完整性起见,您只需添加一个
->first()


只需添加到该
引用::where()
返回一个
Query\Builder
对象,因此为什么异常会告诉您
Query\Builder
对象上不存在
save()
<代码>引用::where()->first()返回一个雄辩的模型,然后您可以在
$referral = Referrals::where('activation_key', $key)->first();
                if (!empty($referral)) {
                    $referral->validate = 1;
                    $referral->save();
                }