首页 > 解决方案 > Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR) 调用未定义函数App\needsRehash()

问题描述

我正在开发一个旧的 laravel 项目,当我启动项目时一切顺利,但是当我尝试添加用户(姓名、名字、密码..)时出现错误。我正在使用 wamp。我也使用了xampp,但仍然存在同样的问题,我找不到任何解决方案,请帮助我。这是 composer.json

    {
  "name": "laravel/laravel",
  "description": "The Laravel Framework.",
  "keywords": [
    "framework",
    "laravel"
  ],
  "license": "MIT",
  "type": "project",
  "require": {
    "php": ">=7.0.0",
    "barryvdh/laravel-cors": "^0.11.3",
    "doctrine/dbal": "^2.5",
    "fideloper/proxy": "~3.3",
    "intervention/image": "^2.4",
    "ircmaxell/password-compat": "^1.0",
    "kylekatarnls/laravel-carbon-2": "^1.0.0",
    "laravel/framework": "5.5.*",
    "laravel/passport": "4.0.*",
    "laravel/tinker": "~1.0",
    "laravelcollective/html": "^5.5",
    "nesbot/carbon": "2.22.0 as 1.34.0",
    "paragonie/random_compat": "2.*",
    "spatie/laravel-medialibrary": "^6.0"
  },
  "require-dev": {
    "filp/whoops": "~2.0",
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "0.9.*",
    "phpunit/phpunit": "~5.7",
    "laravel/dusk": "^2.0"
  },
  "autoload": {
    "classmap": [
      "database"
    ],
    "psr-4": {
      "App\\": "app/"
    }
  },
  "autoload-dev": {
    "psr-4": {
      "Tests\\": "tests/"
    }
  },
  "extra": {
    "laravel": {
      "dont-discover": [
      ]
    }
  },
  "scripts": {
    "post-root-package-install": [
      "php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
      "php artisan key:generate"
    ],
    "post-install-cmd": [
      "Illuminate\\Foundation\\ComposerScripts::postInstall"
    ],
    "post-update-cmd": [
      "Illuminate\\Foundation\\ComposerScripts::postUpdate"
    ]
  },
  "config": {
    "preferred-install": "dist",
    "sort-packages": true,
    "optimize-autoloader": true
  }
}

这是该项目的错误路线

     public function setPasswordAttribute($input)
    {                                                       
        if ($input)
            //Probleme de hashage
           $this->attributes['password'] = needsRehash($input) ? Hash::make($input) : $input;
        
    }

标签: phplaravelauthenticationhashcrypt

解决方案


尝试更改needsRehashHash::needsRehash.

老实说,我很惊讶 Laravel 应用程序能正常工作,因为据我所知needsRehash,框架中从来没有不是静态方法的。

有关更多信息,请参阅Laravel 文档


推荐阅读