Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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_Oop_Frameworks_Kohana_Kohana 3 - Fatal编程技术网

Php 在方法中访问父对象

Php 在方法中访问父对象,php,oop,frameworks,kohana,kohana-3,Php,Oop,Frameworks,Kohana,Kohana 3,我有一个问题,我甚至不能正确命名。情况是这样的 我正在使用php框架(kohana3,但我认为这并不重要)编写一个包含条目和上传的简单cms。这些关系是: Entries -> has_many -> Uploads Uploads -> belongs_to -> Entries 要显示所有条目及其上载,我在视图中使用以下代码: foreach( $entries as $entry ) { foreach( $entry->upload->f

我有一个问题,我甚至不能正确命名。情况是这样的

我正在使用php框架(kohana3,但我认为这并不重要)编写一个包含条目和上传的简单cms。这些关系是:

Entries -> has_many -> Uploads
Uploads -> belongs_to -> Entries
要显示所有条目及其上载,我在视图中使用以下代码:

foreach( $entries as $entry ) 
{
     foreach( $entry->upload->find_all() as $uploads ) 
     {
          foreach( $uploads->find_all() as $upload )
          {
               echo $upload->file;
          }
     }
}
现在我想在条目模型中创建一个名为
find\u first\u upload()
的方法,它将返回第一个上传的元素。以下是it的未来用途:

foreach( $entries as $entry ) 
{
     echo $entry->find_first_upload()->file;
}
重要的是,我不想将任何变量传递给
find\u first\u upload()
方法,例如
$entry
对象或当前循环的条目id。 我想要实现的是能够在
find_first_upload
方法中获取当前循环的条目对象-它将允许我在其中创建foreach

你知道我该怎么编码吗

如果你有任何问题,请随时在这里提问

谢谢,
迈克

很抱歉再次提起这个老话题,但我在谷歌上搜索了一些东西,无意中发现了这个话题。如果任何人有类似的问题,忽略公认的答案,这是正确的方法:

public function find_first_upload()
{
    return $this->uploads->find();
}

是 啊这就是我想要的:)非常感谢!但是我不明白一件事。我可以在模型中使用
return$upload->file
来显示
file
属性,但是如果我写
return$upload
并在视图中使用
echo$entry->find_first_upload()->file
的话,我会得到
未定义的属性:Database\u MySQL\u结果::$file
错误。这怎么可能?对我来说,能够从视图中选择属性非常重要,可能是因为你在上面的对象中,我指的是父对象,而不是该对象中的属性,文件属性填充在子对象中。如果答案正确,请勾选答案,然后单击超级箭头以获取我的答案;)别担心,我肯定会回答的!我只是不想解决这个小问题。你知道怎么做吗?我这样问是因为这个解决方案对我来说毫无价值,除非我无法从视图中获取自定义字段。你可以只返回$upload而不是$upload->file
public function find_first_upload()
{
    return $this->uploads->find();
}