Php artisan 迁移 - 意外 'string' (T_STRING)

Php artisan migrate - unexpected 'string' (T_STRING)

当我 运行 php artisan migrate 为 Laravel 中的数据库创建 table 时,我收到以下错误:

 [Symfony\Component\Debug\Exception\FatalThrowableError]
 Parse error: syntax error, unexpected 'string' (T_STRING), expecting variable (T_VARIABLE)

我认为这个错误是非常无用的,因为它没有告诉我在什么文件中,什么地方出了问题(这使得很难理解发生了什么)。

第一次迁移似乎失败了,因为它没有在我的数据库中生成一个 table。

这是迁移(用户 -> 使用 php artisan make:auth 生成):

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration
{
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password');
            $table->string('avatar');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('users');
    }
}

只是默认迁移多了一行。我不知道它有什么问题。我已经尝试了 composer dump-autoloadcomposer clearcache 但没有任何效果。

我希望有人知道解决方案。

编辑:它似乎发生在第一次迁移 运行 之前。是否有可能有问题的文件?

您可以在此处阅读我的 Laravel.log 文件:https://pastebin.com/1PrDwady

这是$table->avatar('password');应该是 $table->string('avatar');

我在这里看到的唯一错误是 avatar。明明没有avatar类型,所以大概应该是:

$table->string('avatar');

如果您仍然看到错误,请验证确切的行并确保您是 运行 PHP 的有效版本(应该是 5.6+)。

如果没有帮助,请尝试将 up 方法留空以验证错误是否仍然存在。它可能位于不同的应用程序位置(例如 ServiceProvider),而不是直接在此迁移中。

从您的 stack trace 看来,您此时可能不小心编辑了 string() 的函数定义: C:\xampp\htdocs\urenlijstje\vendor\laravel\framework\src\Illuminate\Database\Schema\Blueprint.php:473

其中一个变量名可能缺少 $ 指示 PHP 解析器它确实是一个变量。

这是line of code,因为它应该在Laravel 5.4。

在这种框架无法启动的情况下,我经常将问题追溯到这样的无意编辑。由于您的 vendor 目录不在源代码管理中(或者至少不应该!),另一个选择是 rm -rf vendor && composer install 看看是否能解决您的问题。