我正在使用 Laravel 4 构建一个小型 REST API。我在应用程序中使用 HMVC 方案。问题是,当我尝试调用 API 的控制器时,PHP 说该类不可实例化。
Target [App\Modules\ChunkletAPI\v1\ServerController] is not instantiable.
这是 v1/controllers 中的类本身:
<?php namespace App\Modules\ChunkletAPI\v1;
class ServerController extends ChunkletAPI {}
继承自
<?php namespace App\Modules\ChunkletAPI\v1;
use Controller;
abstract class ChunkletAPI extends Controller {
protected $name;
protected function __construct() {
$this->name = '\Model\ ' . str_replace('Controller', '', get_class($this));
}
public function index() {
$n = $this->name;
return $n::all();
}
}
路由通过以下方式完成:
<?php namespace App\Modules\ChunkletAPI;
use \Illuminate\Support\Facades\Route;
Route::group(array('prefix' => 'api/v1'), function()
{
Route::resource('server', 'App\Modules\ChunkletAPI\v1\ServerController');
});
我无法弄清楚发生了什么——我试过玩弄,使父类非抽象等——谷歌也无济于事。有任何想法吗?