当模型名称存储在变量中时,有没有办法通过变量动态访问laravel模型?

问题描述 投票:1回答:2

基本上我需要做的是:

$x = 'Admin';
$model = new \ReflectionClass($x);
$model->getFieldList();

我在app文件夹中有Admin模型的地方。显然,这不起作用。有谁有想法吗?可以吗?

php laravel
2个回答
2
投票

你可以这样做,但你需要使用完全限定的类名。例如我的模型在Model目录中:

$model = 'App\Model\User';
$user=$model::where('id', $id)->first();

5
投票

首先,您需要将名称空间添加到模型中。默认情况下,这是App\。所以你的字符串必须是"\App\Admin"。现在您可以使用此字符串创建一个类实例。

$x = '\\App\\Admin';
$model = new $x();
© www.soinside.com 2019 - 2024. All rights reserved.