如何在cakephp中的控制器之间连接或交换信息

问题描述:

我对CakePHP 2.0中的控制器之间如何交换信息有点困惑。这基本上是我想要做的。如何在cakephp中的控制器之间连接或交换信息

我有图像数据库表中包含ID,名称,路径等 用户表中包含用户的用户名,密码等

我有一个模型Image.php,控制器 - ImagesController。 PHP和 意见 - 查看/图片/ add.ctp浏览/图像/ index.ctp浏览/图像/ view.ctp

我有一个模型user.php的,控制器 - UsersController.php,并享有 - View/Users/index.ctp,View/Users/login.ctp

我的视图/图像/ index.ctp列出所有已上传的图像,View/Images/add.ctp允许任何人上传图像

View/Users/login.ctp让用户登录,如果是正确的信息,它将用户发送到查看/用户/ index.ctp

1)我如何才能使视图/图像/ add.ctp只能访问已登录的用户。我应该重定向到视图/图像/add.ctp与用户会话信息并检查数据是否已设置或CakePHP中的工作方式如何? 2)如果我使用$ this-> Image-> saveAll($ data_s)从图像更新图像表。如何将一些数据保存到用户表中?我看过文档,但仍有点困惑。

  1. 使用AuthComponent to handle authentication,这真的是你想要的。
  2. 如果两个模型关联,则可以通过另一个访问一个模型。例如。如果图像属于用户,则可以通过简单的$this->Image->User从图像模型访问用户模型。否则,您可以在任何控制器中使用$uses attribute或暂时使用loadModel method包含任何型号。

  1. 你应该在控制器中做这个检查 - 如果你没有登录,不要让代码放到它将使用该视图的分支中。你不应该把这种逻辑放到视图中。

  2. 请致电$this->User->save($some_data)其中$this->User已加载用户模型,$some_data是要插入用户表的数据的缩小子集。