我正在创建一个需要记录当前模型名称的行为。如何从 CakePHP 的控制器中获取当前模型名称?
问问题
5890 次
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 回答