我正在尝试使用一些希望可重用的代码在PHP中动态运行不同的类,但是我很难找到正确的方法来做到这一点。
目前,我正在运行一个POST请求,数据流动如下:
Route::post('/user/create', 'UserController@createItem');
到用户控制器:
namespace App\Http\Controllers;
use Illuminate\Cache\Repository;
use App\Models\User;
class UserController extends AbstractController{
const className = 'User';
}
和摘要控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use GuzzleHttp\Exception\RequestException;
use App\Models\User;
class AbstractController extends Controller
{
public function createItem() {
$inputJSON = file_get_contents('php://input');
$this->className::buildItem($inputJSON);
return;
}
}
理想情况下,这应该调用一个静态方法,称为buildItem()
当我通过硬编码到抽象控制器中来测试它时,它按预期工作,但是当我尝试以这种方式执行此操作时,我在PostMan中收到错误:User
ErrorException: Undefined property: App\Http\Controllers\UserController::$className in file .../app/Http/Controllers/AbstractController.php on line 14
我尝试过声明和引用几种不同的方法,但似乎无法使其起作用。任何帮助是值得赞赏的!className
紫衣仙女