在我的控制器中,我有一个函数(getRelatedStuff),它返回一个值数组,供我在edit.ctp中使用:
class MyController extends AppController {
public function edit($id = null) {
$this->getRelatedStuff($current['Form']['id'];
}
public function getRelatedStuff($id = null) {
$this->loadModel('Related');
$related = $this->Related->find('all', array(
'conditions'=>array('Related.id' => $id)
);
return $this->set(compact('related'));
}
}
当我在foreach循环中的edit.ctp中使用它时,这很好用。
foreach($related as $r) {
echo $r['Model']['field'];
}
但是,我无法在编辑功能本身中使用$ related,我需要访问该数据以用于其他目的。具体来说,我需要在函数编辑中使用$ related设置foreach()循环。如果我尝试这样做,或者如果我在编辑功能中尝试调试$ related,我总是得到:
undefined variable $related in /docpath
如果能够在我的编辑功能中使用$ related,我该怎么做?
答案 0 :(得分:1)
由于此行
,您可以在模板中使用它df1 = (df[df['Correct'] == 'T'].groupby('userID')
.size()
.reindex(df['userID'].unique(), fill_value=0)
.to_frame('Correct'))
print (df1)
Correct
userID
1050 2
1051 2
333 0
(它正在为要使用的模板创建$this->set(compact('related'));
var)
但您在控制器中的编辑操作无法访问$ related变量,因此您应该返回它:
$related
答案 1 :(得分:0)
我明白了。我将编辑功能中的函数调用更改为以下内容:
$related = $this->getRelatedStuff(['Form']['id']);
然后我在edit函数中设置edit.ctp的变量:
$this->set('related', $related);
最后,我修改了getRelatedStuff,使它只返回原始变量,而不先设置它:
return $related;