Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无需查询即可获取模型表名称_Php_Laravel - Fatal编程技术网

Php 无需查询即可获取模型表名称

Php 无需查询即可获取模型表名称,php,laravel,Php,Laravel,我有一个软件包媒体库的空间。我需要得到模型的表名 我知道我可以做到这一点: public function getPath(Media $media) { $name = (new $media->model())->getTable() } 但这会创建一个新的查询。我不需要在数据库上创建额外的查询。在table media中,我有一个列amodel\u type,其中的记录可以是这样的:App\ModelName。也许我不需要查询就可以得到模型的名称?我不认为“new

我有一个软件包媒体库的空间。我需要得到模型的表名

我知道我可以做到这一点:

public function getPath(Media $media) {
     $name = (new $media->model())->getTable()
}

但这会创建一个新的查询。我不需要在数据库上创建额外的查询。在table media中,我有一个列a
model\u type
,其中的记录可以是这样的:
App\ModelName
。也许我不需要查询就可以得到模型的名称?

我不认为“new model()”在数据库上创建了一个查询,它只是生成了模型类的一个新对象实例。我不太了解这个库,但考虑到它是一个空间库,它的功能可能与Eloquent非常相似,具有相同的行为。

在laravel framework github中有一个答案: . 所以,您似乎需要扩展媒体模型。 来自github的示例

class BaseModel extends Eloquent {

    public static function getTableName()
    {
        return with(new static)->getTable();
    }

}

class User extends BaseModel {

}


User::getTableName();