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-autoload
和 composer 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
看看是否能解决您的问题。
当我 运行 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-autoload
和 composer 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
看看是否能解决您的问题。