如何调用配置中定义的类

时间:2019-02-18 19:03:44

标签: laravel

正如标题所暗示的,我需要给一个班级打电话。

Laravel中的示例配置文件:

return [
    'user' => App\User::class
];

我的问题是我需要运行非静态方法并且不确定如何执行该操作。

(new User())->getTable()

1 个答案:

答案 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