Inflector.php第265行中的FatalErrorException:语法错误,意外':',期待';' 要么 '{'

Abd*_*dir 16 php laravel

我去使用更新作曲家

composer update
Run Code Online (Sandbox Code Playgroud)

更新后出现以下错误:

Inflector.php第265行中的FatalErrorException:语法错误,意外':',期待';' 要么 '{'

请协助

提前致谢

使用Laravel Framework 5.2.45版

这是作曲家代码

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*",
        "laravelcollective/html": "*.*"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~4.0",
        "symfony/css-selector": "2.8.*|3.0.*",
        "symfony/dom-crawler": "2.8.*|3.0.*"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "app/Libraries/Functions.php"
        ]
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postInstall",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postUpdate",
            "php artisan optimize"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}
Run Code Online (Sandbox Code Playgroud)

请参阅inflector.php发生错误的功能

public static function tableize(string $word) : string
    {
        return strtolower(preg_replace('~(?<=\\w)([A-Z])~', '_$1', $word));
    }
Run Code Online (Sandbox Code Playgroud)

小智 51

这是PHP版本问题,PHP 7.0和doctrine/inflector的更新将正常工作,因为doctrine/inflector 1.20及更高版本需要PHP 7.

但是,如果您希望保留当前的PHP版本,可以通过运行以下命令来降级doctrine/inflector版本:

  1. 删除composer.lock文件

    rm -f Composer.lock

  2. 删除供应商

    rm -R -f vendor

  3. composer install

  4. 根据您的php版本安装doctrine/inflector

    composer require doctrine/inflector:1.1.0

doctrine/inflector:1.1.0支持PHP 5.6及以上版本.如果你有另一个版本的php,你可以参考这个链接


Jer*_*dev 5

当您搜索此文件名然后开始比较软件包版本时,这真的很明显。

您需要laravelcollective/html任何版本,因此,就目前而言,最新版本是5.5.x. 这个包反过来需要"doctrine/inflector": "~1.1",,所以下面的任何版本2.0,目前1.3.0 需要 PHP 7.0 或更高版本

如果查看最新的源代码inflector.php,您会看到第 265 行设置了返回类型,仅 PHP 7.0 及更高版本支持。

您使用的是 PHP 5.6.24,因此此代码无法在您的系统上运行。

修复错误的简单方法是使用laravelcollective/html与您的 Laravel 版本相对应的版本。这应该是5.2.*


Ale*_*dro 5

我正在尝试:

  • Laravel 5.1
  • PHP 5.6.36

我的表名称是这样的:“ test_meetings”

我解决了在testMeeting.php模型表名中指定的错误:

protected $table = 'test_meetings';
Run Code Online (Sandbox Code Playgroud)