我已经实现了我的控制器:
class PayamAPIController extends Controller
{
const THESIS = \App\Models\Thesis;
public function getOffers($offerable)
{
// does not work
$entities = self::THESIS::where('user_id',\Auth::id())->get();
}
}
这是我的控制器类的简化版本。
问题是我无法通过常量访问Thesis
模型。
PayamAPIController.php第27行中的FatalErrorException:语法错误,意外' ::' (T_PAAMAYIM_NEKUDOTAYIM)
我需要将模型存储在常量或变量中,并在控制器方法中使用它们
答案 0 :(得分:1)
如果必须使用常量,请尝试这样的
protected static $model ='App\Models\MyModel';
//in function
$model = (new static::$model)->where('id', $this->id)->firstOrFail();
或者像Claudio King提到的那样包括use Model
答案 1 :(得分:0)
无需创建常量,只需包含对外部类的引用,并使用'语句:
use \App\Models\Thesis;
class PayamAPIController extends Controller{
$entities = Thesis::where('user_id',\Auth::id())->get();
}
答案 2 :(得分:0)
找到解决方案。只需在变量中对常量进行declate,然后调用它:
$model = self::THESIS;
entities = $model::where('whatever')->get();
答案 3 :(得分:0)
您需要在变量中声明对 constant
的引用,然后调用它:
class SomeController extends Controller
{
protected const MODEL = SomeClass::class;
public function doSomeThing()
{
$entities = (self::MODEL)::where('user_id',\Auth::id())->get();
}
}