Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从其他控制器访问控制器_Php_Cakephp - Fatal编程技术网

Php 从其他控制器访问控制器

Php 从其他控制器访问控制器,php,cakephp,Php,Cakephp,我昨天开始使用cakephp,遇到了一个问题: 我有一个“ImagesController”和一个“UsersController” ImageView显示图像列表。用户使用userid保存在images表中 我现在需要将userid转换为users表中的名称。我在助手那里尝试过,但没有成功,因为我无法访问$this->User->find($id) 我已经在谷歌上搜索过了,但似乎我把它命名错了,所以没有结果 谢谢你的帮助 看起来您有两种型号,Image和User。如果您希望能够调用$this-

我昨天开始使用cakephp,遇到了一个问题:

我有一个“ImagesController”和一个“UsersController”

ImageView显示图像列表。用户使用userid保存在images表中

我现在需要将userid转换为users表中的名称。我在助手那里尝试过,但没有成功,因为我无法访问
$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))那是因为你的条件数组有缺陷。
递归的
不在其中。试着将它与第一个示例进行比较,看看它应该是什么样子。哦,上帝,非常感谢:-)