ฉันค่อนข้างแน่ใจว่าข้อผิดพลาด 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!!';
}
}
พอยน์เตอร์ / เคล็ดลับ / ความช่วยเหลือใด ๆ จะได้รับการชื่นชมอย่างมาก ขอบคุณ!