2017-05-05 74 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