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();