2013-08-30 125 views
-2

我正在创建一个需要记录当前模型名称的行为。如何从CakePHP的控制器中获取当前的模型名称?CakePHP:获取控制器中的当前模型名称

+0

你这是什么意思是“当前”型号名称?为什么你提到控制器,如果它是你创建的模型行为? –

回答

2

当您想从行为中获得控制器主模型名称时,您的体系结构有缺陷。这违反了MVC模式。你的应用应该有胖的模型和瘦的控制器。

您的行为已经有模型实例,因为它需要传递给行为。您可以从模型对象获取名称:

// Cake 2.x 
$Model->name 
// Cake 3.x 
$Table->name() 

或它的别名

// Cake 2.x 
$Model->alias 
// Cake 3.x 
$Table->alias() 
+0

但是,标题问题在试图扩展控制器时很有意义,而谷歌的结果很可能会落在这里。要获取控制器中的当前模型名称,请使用'$ this-> modelClass'。它是CakePHP 2.x中类Controller的一个属性,也是CakePHP 3.x中Cake \ Datasource \ ModelAwareTrait的一个属性。 – jonathanbruder

0

前面的例子不工作,但它是我的工作:

// Cake 3.x  
$object->repository()->alias() 
相关问题