2013-12-18 50 views
0

我很確定我的FatalErrorException Call to a member function錯誤與命名空間錯誤有關,但不知道爲什麼。模型似乎加載正常,只有當我調用模型方法時。我將解釋:命名空間模型 - FatalErrorException調用成員函數 - Laravel 4

我試圖使用方法的sayHi()在modelMy目錄結構是這樣的:

=目錄結構=

應用程序/控制器

|-controllers 
    |-api 
    |-data 
     |- AttendanceController.php 
    |- ChartsController.php 
    |- DataServeController.php 
    |- ApiController.php 
|- BaseController.php 

應用/型號

|-models 
    |-api 
    |- UkAudience.php :: sayhi() 
    |- BaseModel.php 
    |- DataServeController.php 
    |- ApiController.php 

=路由=

我打這樣的路線:

Route::get('someroute',array('as' => 'get-api-data', 'uses' => 'api\[email protected]'); 

而且DataServeController從 'ApiController'

=控制器擴展=

以下是從各控制器相關摘錄:

我注入接口依賴關係,模型在像這樣的'ApiController()'構造函數中實例化。您可以看到ApiController()如何注入接口/實例化模型。

// controllers/api/DataServeController.php 

namespace Api; 
use ApiController; 

class DataServeController extends ApiController { 

    public somefunction(){ 
     echo $this->UkAudience->sayhi(); 
    } 
} 

// controllers/ApiController.php 

class ApiController extends BaseController { 

/** 
* UKAudience Model 
* @var UKAudience 
*/ 
protected $UKAudience; 

public function __construct(Api\UKAudience $UKAudience){ 
    parent::__construct(); 
$this->Broadcast = $Broadcast; 
} 

... 

=型號==

所以模型似乎沒有Laravel抱怨加載。但是,當我嘗試使用功能,我得到Symfony \ Component \ Debug \ Exception \ FatalErrorException Call to a member function sayhi() on a non-object

// models/api/UKAudience.php 
    namespace Api; 
use DataServe; 

class UkAudience extends DataServe { 


    public function sayhi(){ 
     return 'hello!!'; 
    } 
} 

任何指針/提示/幫助將不勝感激,謝謝!

回答

0

你在哪裏將$UKaudience分配給構造函數中的指針?不要忘了這部分:

public function __construct(Api\UKAudience $UKAudience){ 
    parent::__construct(); 
$this->Broadcast = $Broadcast; 
$this->UKAudience = $UKAudience; // This is required if you want to use objects in this class. 
} 

然後,您應該能夠使用調用這個函數: $this->UKAudience->sayhi()

相關問題