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

时间:2012-02-09 02:11:40

标签: php cakephp

我对如何在CakePHP 2.0中的控制器之间交换信息感到困惑。这基本上就是我想要做的。

我有图像db表,其中包含id,name,path等。 用户表,包含用户用户,密码等

  

我有一个模型Image.php,一个控制器 - ImagesController.php,和   views - 查看/图像/ 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允许用户登录,如果信息正确,则会将用户发送到View / Users / index.ctp

1)如何才能使View / Images / add.ctp仅供登录的用户访问。我应该将它们重定向到带有用户会话信息的View / Images / add.ctp并检查数据是否已设置或它在CakePHP中是如何工作的?

2)如果我使用$ this-> Image-> saveAll($ data_s)从图像更新图像表。如何将一些数据保存到用户表中?我看过文档但有点困惑。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

  1. 您应该在控制器中执行此检查 - 如果您尚未登录,请不要让代码放入将使用该视图的分支中。你不应该把这种逻辑放在一个视图中。

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