我很确定我的FatalErrorException
Call to a member function
错误与命名空间错误有关,但不确定原因。模型似乎加载正常,只有当我调用模型方法时才会加载。我会解释一下:
我试图在modelMy目录结构中使用sayhi()方法,如下所示:
=目录结构=
应用/控制器
|-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\DataServeController@getIndex');
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;
}
...
= Model ==
所以模型似乎在没有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 :(得分: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()