Php 在方法中访问父对象
我有一个问题,我甚至不能正确命名。情况是这样的 我正在使用php框架(kohana3,但我认为这并不重要)编写一个包含条目和上传的简单cms。这些关系是: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
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();
}