Я почти уверен, что моя ошибка FatalErrorException
Call to a member function
связана с ошибкой пространства имен, но не уверен, почему. Модели загружаются нормально, только когда я вызываю метод модели. Я объясню:
Я пытаюсь использовать метод 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\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;
}
...
= Модель ==
Таким образом, модель загружается без жалоб 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!!';
}
}
Любые указатели/советы/помощь будут очень признательны, спасибо!