2017-04-05 123 views
1

我想用__construct設置一些全局變量,但它不啓動,因爲我可以寫任何東西進去,這些函數沒有調用任何錯誤。我的應用中沒有City類,但是此代碼沒有提供任何錯誤。爲什麼?__construct在控制器laravel 5.4中不工作

/app/Http/Controller/Controller.php:

namespace App\Http\Controllers; 

use Illuminate\Foundation\Bus\DispatchesJobs; 
use Illuminate\Routing\Controller as BaseController; 
use Illuminate\Foundation\Validation\ValidatesRequests; 
use Illuminate\Foundation\Auth\Access\AuthorizesRequests; 

class Controller extends BaseController 
{ 
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests; 

    public function __construct() 
    { 
     $this->data['cities'] = City::get(); 
    } 
} 
+1

你試過了嗎? 'public function __construct() {parent} __ construct(); //做更多的事情}' –

+0

在這段代碼中沒有必要調用parent :: construct(),BaseController中沒有__construct,它應該給出一個錯誤。您是否嘗試過通過該控制器上的路由調用函數?請顯示功能代碼。 – dparoli

+0

繼承'路由/控制器'的任何原因 –

回答

1

請改變你的構造類似這樣的

class YourController extends Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 
} 

因爲我們需要先承滴盤的調用父類的構造。

希望得到這個幫助!