0

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

4

4 回答 4

3

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

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

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

或者是别名

// Cake 2.x
$Model->alias
// Cake 3.x
$Table->alias()
于 2013-08-30T13:07:15.487 回答
0

前面的例子不起作用,但它对我有用:

// Cake 3.x    
$object->repository()->alias()
于 2017-08-02T19:17:48.070 回答
0

对于 cake 3.4 + 和 4.x(在撰写本文时 CakePHP 是 4.2),您可以使用以下内容:

// For table
$Table->getTable();

// For alias    
$Table->getAlias();
于 2020-11-16T16:52:55.563 回答
0

因为 Cakephp 3 你可以使用

$this->modelClass
于 2020-05-20T04:54:22.400 回答