Php 从其他控制器访问控制器
我昨天开始使用cakephp,遇到了一个问题: 我有一个“ImagesController”和一个“UsersController” ImageView显示图像列表。用户使用userid保存在images表中 我现在需要将userid转换为users表中的名称。我在助手那里尝试过,但没有成功,因为我无法访问Php 从其他控制器访问控制器,php,cakephp,Php,Cakephp,我昨天开始使用cakephp,遇到了一个问题: 我有一个“ImagesController”和一个“UsersController” ImageView显示图像列表。用户使用userid保存在images表中 我现在需要将userid转换为users表中的名称。我在助手那里尝试过,但没有成功,因为我无法访问$this->User->find($id) 我已经在谷歌上搜索过了,但似乎我把它命名错了,所以没有结果 谢谢你的帮助 看起来您有两种型号,Image和User。如果您希望能够调用$this-
$this->User->find($id)
我已经在谷歌上搜索过了,但似乎我把它命名错了,所以没有结果
谢谢你的帮助 看起来您有两种型号,
Image
和User
。如果您希望能够调用$this->User->find($id)
,可以将模型添加到cotroller顶部的$uses
变量中
var $uses = array('Image','User');
例如。您需要的是将图像模型与用户模型关联起来。这本书真值得一读 一旦它们关联起来,您就可以直接获取名称,而无需调用任何函数。在我的脑海中,您需要在图像模型中添加以下内容:
public $belongsTo = array('User');
然后从您的视图中,用户名应在以下位置可用:
$data_var['Image']['User']['name'];
其中,
$data\u var
是保存图像数据的视图变量。嘿,耶,几乎就是我想要的!如何从中调用函数?比如$this->User->getUserNameById(1)代码>或者有更好的方法吗?这正是你所说的。或者,您可以设置模型关联,因此调用$this->Image->find()
也将拉入User
数据。这是这方面的文件。嘿,似乎这不是我想要的方式:事实上,这不是一个好答案,Oldskool的答案是正确的。我找不到这不好的原因的链接,但我记得读过。我认为这只会造成开销或类似的事情。如果您有适当的关联,您可以使用$this->Image->User->find(…)
访问其他模型。如果您没有关联,那么如果模型在所有操作中都使用,那么它可能是正确的。$belongsTo是重点!谢谢但它不接受我提出的条件:public function index(){$conditions=array('recursive'=>-1,'order'=>array('id DESC'),'limit'=>15,'page'=>1,);pr($this->Image->find('all',$conditions))那是因为你的条件数组有缺陷。递归的
不在其中。试着将它与第一个示例进行比较,看看它应该是什么样子。哦,上帝,非常感谢:-)