首页 > 解决方案 > 方法 App\Http\Controllers\VerifyController::update 不存在

问题描述

我是 Laravel 的新手,我所做的是创建一个用户,然后发送一个链接验证。我创建了一个 VerifyController 来执行此操作,其中包括以下代码:

<?php

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;
use App\Http\Controllers;

    class VerifyController extends Controller
    {
        /**
         * verify the user with a given token
         * 
         * 
         * @param string $token
         * 
         * @return Response
         */
        public function verify($token)
        {
            User::where('token', $token)->firstOrFail();

                $this->update(['token' => null]); //verify the user;


                $this->route('home');
                $this->with('success', 'Account verifed');

        }
    }

因此,当您收到验证电子邮件时,您按下按钮,以便用户得到确认,但代码不接受更新。我想知道是否缺少图书馆或其他东西。
我希望我清楚我的问题。
我正在使用 Laravel Framework 7.1.3,这个项目的想法是由 5.5 版本的 Laravel Framework 版本组成的。
我尝试使用 update(['token' => null]); //验证用户;没有 $this 但什么也没有,还有 ->update(['token' => null]); //验证用户;

标签: phplaravel

解决方案


您应该首先将查询的用户分配给一个变量,然后像这样调用该变量的更新;

class VerifyController extends Controller
{
    /**
     * verify the user with a given token
     * 
     * 
     * @param string $token
     * 
     * @return Response
     */
    public function verify($token)
    {
        $user = User::where('token', $token)->firstOrFail();

            $user->update(['token' => null]); //verify the user;


            $this->route('home');
            $this->with('success', 'Account verifed');

    }
}

推荐阅读