在每个控制器中声明$ name的目的是什么

时间:2010-05-12 17:37:51

标签: cakephp

我靠蛋糕PHP 我注意到每个Controller都声明了一个变量$ name 它的目的是什么?
它是指表格的名称吗?

<?php
class SitesController extends AppController { 
var $name = 'Sites';
...
}
?>

如果是, 用户可以像这样引用多个表吗? var $ name ='Sites','Sites2','Sites3';

3 个答案:

答案 0 :(得分:6)

它用于与PHP4兼容。你可以放心地忽略它。

不,它;不是指代表的名称......有时候暗示名为FooController的控制器将使用名为Foo的模型,但并不总是如此。

不,你不能指定那样的模型名称。要加载的模型列在$uses属性中:

public $uses = array ('Sites', 'Sites2', 'Sites3');

答案 1 :(得分:2)

没有。 $ name用于兼容PHP4。 PHP4没有完整的面向对象的功能,因此有时无法从控制器类派生模型的名称。设置$ name只是确保不会发生 - 模型的名称是显式的,所以这个问题不会发生。

AFAIK如果您使用的是PHP5,并且从不打算在您的应用中使用PHP4,则完全没有必要。

答案 2 :(得分:1)

据我所知,这是CakePHP的遗留约定,大多数情况下没有它。 Cake使用此属性来获取Controller名称。这不是什么大问题,只需顺其自然。