php - 无需查询即可获取模型表名
问题描述
我有一个 spatie 的包媒体库。我需要获取模型的表名。
我知道我可以这样做:
public function getPath(Media $media) {
$name = (new $media->model())->getTable()
}
但这会创建一个新查询。我不需要在数据库上创建额外的查询。在表格媒体中,我有一列 a model_type
,其中记录可以是这样的:App\ModelName
. 也许我可以在没有查询的情况下获得模型的名称?
解决方案
在 laravel 框架 github 中有一个答案: https ://github.com/laravel/framework/issues/1436 。因此,您似乎需要扩展 Media 模型。来自 github 的示例
class BaseModel extends Eloquent {
public static function getTableName()
{
return with(new static)->getTable();
}
}
class User extends BaseModel {
}
User::getTableName();
推荐阅读
- javascript - antd卡中“extra”中“react-router-dom”中的“链接”不起作用
- google-data-studio - 有谁知道如何将单词日志放入谷歌数据工作室过滤器/控件中
- loops - 在 R 中循环仅返回 Null 向量的 NA Vals
- azure-data-explorer - 使用定义的字段声明内存表
- flutter - 如何获取颤振的本地通知数据?
- css - 如何为 CSS 过滤器蓝色和动画移除屏幕边缘的阴影
- javascript - 如何自定义传单样式功能以根据属性值获取颜色
- operators - 精益中有前缀符号吗?
- python - 熊猫在读取csv时将表格修改为列表
- amazon-s3 - 有没有办法在一个请求中枚举对象部分?