2016-07-06 62 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