2016-07-06 31 views
0

我嘗試使用SublimeLinter-phplint在Sublime Text 3中對我的php文件進行綁定。linter運行,但不遵循'use'語句,因此它不理解我的繼承並引發更多的錯誤。例如,這裏有一個控制器:「use」語句未被phplint解析

<?php 
namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Http\Controllers\Controller; 

class TestController extends Controller 
{ 
    public function __construct() 
    { 
    $this->middleware('auth'); 
    } 

    public function index(Request $request) 
    { 
    return response()->json([], 200); 
    } 

} 

的第一個錯誤我得到的是

ERROR: unknown type `Controller' 

其次

ERROR: unknown method App\Http\Controllers\TestController::middleware 

這清楚地表明,phplint是無法理解的「用」聲明。有什麼步驟來解決這個問題?這是配置問題還是phplint無法做到這一點? (我正在使用laravel 5)

+0

嘗試把延長控制器與路徑,使其成爲一流的擴展的TestController應用\ HTTP \控制器\控制器 –

+0

已經嘗試過,這是行不通的。如果我也在App \ Http \ Controllers \ Controller.php中執行相同的操作,所以它會擴展Illuminate \ Routing \ Controller我會得到「未知類型」Illuminate \ Routing \ Controller'「錯誤。 – hilnius

+0

這不是一個命名空間或類問題,而是一個類型問題。問題必須在於控制器而不是擴展。 –

回答

0

您應該刪除use App\Http\Controllers\Controller;這個。這可能會造成問題。該控制器代碼將

<?php 
namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

class TestController extends Controller 
{ 
    public function __construct() 
    { 
    $this->middleware('auth'); 
    } 

    public function index(Request $request) 
    { 
    return response()->json([], 200); 
    } 

} 
+0

爲什麼會造成這個問題?如果我刪除它,我的代碼將無法知道「Controller」代表什麼。 – hilnius