当我运行php artisan migrate
为Laravel中的数据库创建表时,我收到以下错误:
[Symfony\Component\Debug\Exception\FatalThrowableError]
Parse error: syntax error, unexpected 'string' (T_STRING), expecting variable (T_VARIABLE)
我认为这个错误是没用的,因为它没有告诉我什么文件,以及什么地方出错了(这使得很难理解发生了什么)。
迁移似乎因第一次迁移而失败,因为它没有在我的数据库中生成单个表。
这是迁移(用户 - >使用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
答案 0 :(得分:2)
从您的stack trace看起来好像您可能在此时意外编辑了string()
的功能定义:
C:\xampp\htdocs\urenlijstje\vendor\laravel\framework\src\Illuminate\Database\Schema\Blueprint.php:473
其中一个变量名可能缺少$
,指示PHP解析器确实是变量。
以下是Laravel 5.4中的line of code。
在这样的情况下,框架无法启动,我经常追溯到像这样无意编辑的问题。由于您的vendor
目录不在源代码管理中(或者至少不应该!),另一个选项是rm -rf vendor && composer install
并查看是否可以解决您的问题。
答案 1 :(得分:1)
我在这里看到的唯一错误是avatar
。显然没有avatar
类型,所以应该可能是:
$table->string('avatar');
如果您仍然看到错误,请验证确切的行,并确保您运行的是有效版本的PHP(它应该是5.6 +)。
如果它没有帮助,请尝试保留空up
方法以验证错误是否仍然存在。它可能位于不同的应用程序位置(例如ServiceProvider),而不是直接在此迁移中。
答案 2 :(得分:0)
这是$ table-&gt; avatar(&#39;密码&#39;);应该是$ table-&gt; string(&#39; avatar&#39;);