正如标题所暗示的,我需要给一个班级打电话。
Laravel中的示例配置文件:
return [
'user' => App\User::class
];
我的问题是我需要运行非静态方法并且不确定如何执行该操作。
即(new User())->getTable()
答案 0 :(得分:1)
如果您的配置文件example_config_file.php
中有此文件:
return [
'user' => App\User::class,
];
您可以使用new
命令来调用它,以创建User
模型的实例:
$userClass = config('example_config_file.user');
$user = new $userClass(); // blank instance of User model
或者如果您想使用口才方法,则如下所示:
$userClass = config('example_config_file.user');
$user = $userClass::find(1); // User model with id = 1
您可以创建一个帮助器类并获取任何类型的模型,如下所示:
class ModelHelper
{
public static function getModel($type, $id = null)
{
$modelClass = config("example_config_file.$type");
if($id) {
return $modelClass::find($id);
}
return new $modelClass();
}
}
然后在您的代码中,每当需要用户实例时,都调用帮助程序类:
$user = ModelHelper::getModel('user'); // get a blank User model
$post = ModelHelper::getModel('post', 1); // get the post with id = 1