分享 / 11 / 3 / 创建于 4年前 / 更新于 4年前
laravel 如何在controller中获取某个model的table名?
百度搜索了一番,发现全是解释为什么Model::where()可以被调用,而Model::getTable()却无法被调用,会显示“Non static method 'getTable' should not be called statically.”。
Model::where()
Model::getTable()
“Non static method 'getTable' should not be called statically.”
我首先是翻到Model对应的Builder类文件查看,发现并没有getTbale()这个方法,但是能找到这个:
Model
Builder
getTbale()
也就是getTable()属于Model实例,它并非是一个静态方法。
getTable()
那么问题来了,如何在controller中获取Model实例呢?
controller
在Builder类中(setModel()上方)能找得到一个getModel()的方法:
setModel()
getModel()
“如何在controller中获取某个model的table名?”的问题就迎刃而解:
应该这样获取:Model::getModel()->getTable()
Model::getModel()->getTable()
$model->getTable();
你没成功的问题在于 $model 没有获取到,也可以用 (new Model)->getTable();获取,一楼的老哥已经给了标准答案应该采纳一下。
$model
(new Model)->getTable();
我要举报该,理由是:
高认可度评论:
百度搜索了一番,发现全是解释为什么
Model::where()
可以被调用,而Model::getTable()
却无法被调用,会显示“Non static method 'getTable' should not be called statically.”
。我首先是翻到
Model
对应的Builder
类文件查看,发现并没有getTbale()
这个方法,但是能找到这个:也就是
getTable()
属于Model
实例,它并非是一个静态方法。那么问题来了,如何在
controller
中获取Model
实例呢?在
Builder
类中(setModel()
上方)能找得到一个getModel()
的方法:“如何在controller中获取某个model的table名?”的问题就迎刃而解:
应该这样获取:
Model::getModel()->getTable()
$model->getTable();
百度搜索了一番,发现全是解释为什么
Model::where()
可以被调用,而Model::getTable()
却无法被调用,会显示“Non static method 'getTable' should not be called statically.”
。我首先是翻到
Model
对应的Builder
类文件查看,发现并没有getTbale()
这个方法,但是能找到这个:也就是
getTable()
属于Model
实例,它并非是一个静态方法。那么问题来了,如何在
controller
中获取Model
实例呢?在
Builder
类中(setModel()
上方)能找得到一个getModel()
的方法:“如何在controller中获取某个model的table名?”的问题就迎刃而解:
应该这样获取:
Model::getModel()->getTable()
你没成功的问题在于
$model
没有获取到,也可以用(new Model)->getTable();
获取,一楼的老哥已经给了标准答案应该采纳一下。