CakePHP:将$this-> data传递给Controller中的View

前端之家收集整理的这篇文章主要介绍了CakePHP:将$this-> data传递给Controller中的View前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用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中获取其选项.

因此,$this->数据有其特殊的地方,不应轻易使用,就像命名变量有用,不应忽略.同时使用两者.如果您不想自动设置Form Helper内容,请设置()您的变量.恕我直言,它也更具可读性,可以指定一个变量名称来暗示它包含的数据.你在$this->数据上操作的所有视图都不如在$foo上操作的一个视图和在$bar上操作的另一个视图那样清晰.

猜你在找的PHP相关文章