我正在创建一个需要记录当前模型名称的行为。如何从CakePHP中的控制器中获取当前模型名称?
答案 0 :(得分:2)
当您想从行为中获取控制器主要模型名称时,您的体系结构存在缺陷。这违反了MVC模式。你的应用程序应该有胖模型和瘦控制器。
您的行为已经具有模型实例,因为它需要传递给行为。您可以从模型对象中获取名称:
// Cake 2.x
$Model->name
// Cake 3.x
$Table->name()
或它的别名
// Cake 2.x
$Model->alias
// Cake 3.x
$Table->alias()
答案 1 :(得分:0)
早期的例子不起作用,但它对我有用:
// Cake 3.x
$object->repository()->alias()
答案 2 :(得分:0)
从Cakephp 3开始,您就可以使用
$this->modelClass
答案 3 :(得分:0)
对于cake 3.4 +和4.x(编写本文时,CakePHP在4.2上),您可以使用以下代码:
// For table
$Table->getTable();
// For alias
$Table->getAlias();