我正在使用Cake
PHP 1.2,我只是想知道将$this->数据传递给Controller的View是否有任何副作用.
例如:
// inside PostsController,I have this code: $this->data['Posts'] = $this->Post->find('all');
代替 :
$posts = $this->Post->find('all'); $this->set(compact('posts')); // inside the /posts/view,I access it like this: <?PHP foreach ($this->data['Posts'] as $post) {....};?>
通过这样做,我从控制器中一起跳过了$this-> set().这是否违反了我可能忽略的任何MVC模式或任何安全问题?我看到使用Auth组件,$this->数据包含[_Token]数组.
谢谢
您需要了解Cake Helpers自动查找数据的不同位置,因为这是真正的差异.表单助手将根据$this->数据的内容自动填写字段.这就是验证失败时表单数据的持续性. OTOH,< select>元素选项数组自动从复数字段名称中获取,
例如如果设置,$form-> select(‘Model.foo_id’)将从$foos中获取其选项.
例如如果设置,$form-> select(‘Model.foo_id’)将从$foos中获取其选项.
因此,$this->数据有其特殊的地方,不应轻易使用,就像命名变量有用,不应忽略.同时使用两者.如果您不想自动设置Form Helper内容,请设置()您的变量.恕我直言,它也更具可读性,可以指定一个变量名称来暗示它包含的数据.你在$this->数据上操作的所有视图都不如在$foo上操作的一个视图和在$bar上操作的另一个视图那样清晰.