2017-05-05 73 views
1

当我运行php artisan migrate,使表为我Laravel数据库中,我得到了以下错误:PHP的工匠迁移 - 意外“串”(T_STRING)

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

我认为,这个错误是因为它很没用没有告诉我在什么文件中,什么地方有什么错误(这使得很难理解正在发生的事情)。

由于在我的数据库中没有生成单个表,迁移似乎因第一次迁移而失败。

这是迁移(用户 - >用PHP人员化妆生成: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

+0

这是什么? $表 - >头像( '密码'); – Scott

回答

2

它看起来与你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,看看是否可以解决您的问题。

+0

我不知道如何,或者为什么,但整个“功能”一词缺失。它只是:public string()。我无法通过版本控制(git)找到它。但现在已经修复了。谢谢! – Nieck

0

这是$表 - >头像( '密码');应该是$ table-> string('avatar');

+0

是的,这是一个小错误,但我忘了在这个问题中编辑它。我在尝试迁移时仍然遇到同样的错误。 – Nieck

+0

在文件中看起来没有任何错误。林想知道是否有什么错误的路线文件?或者在此之前执行的另一个文件? – Scott

+0

我的路线似乎没有错......非常奇怪。我会在另一台电脑上试用它。也许这是我的PHP的问题。 (并且我将日志添加到问题中)。 – Nieck

1

我在这里看到的唯一错误是avatar。显然有没有avatar类型,所以它应该是可能:

$table->string('avatar'); 

如果仍然出现错误,核实确切的行,并确保您正在运行PHP的有效版本(应该是5.6+)。

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

+0

我知道,这是一个小错误,但我忘了在这个问题中编辑它。我在尝试迁移时仍然遇到同样的错误。我的PHP版本是7.0.9,它在up()为空时仍然出现。我会在不同的电脑上试一下,看看我的PHP有什么问题。 – Nieck