创建了一个视图函数,每当我点击链接查看template
时,页面顶部的网址都是正确的,但它会在数据库中显示相同的fields
列表。
字段是
accounts - id, company name, abn
template - id, name, description, account_id
field - id, name, field type, template_id
function view(){
$accounts=$this->User->AccountsUser->find('list',
array('fields'=>array('id', 'account_id'),
'conditions' =>array('user_id' =>
$this->Auth->user('id'))));
$templates=$this->Template->find('first',
array('conditions' => array(
'Template.account_id' => $accounts)));
$fields=$this->Field->find('all',
array('conditions' => array(
'Field.template_id' => Set::extract('/Template/id', $templates))));
$this->set('template', $templates);
$this->set('account', $accounts);
$this->set('field', $fields);
}
这是视图
<div class = "conlinks">
</br></br></br></br></br><h2>Here is your template fields</h2></br>
<?php foreach($field as $fields): ?>
<tr>
<td align='center'><?php echo $fields['Field']['name']; ?>
</tr></br>
<?php endforeach; ?>
</div>
所以问题是它在打印字段时抓取完全相同的字段列表,而不是正确的template_id
答案 0 :(得分:0)
您应该能够自己调试这个。只需逐步缩小错误。
对于初学者,在视图函数中,对以下变量执行print_r,并确保每个变量都包含逻辑结果:
$占
$模板
$字段
如果你在那里发现了意想不到的结果,我会查看你传递给每个发现的参数,并确保它们没问题。您将$ accounts作为数组传递给查找条件 - 确保它与蛋糕期望的格式匹配。对Set :: extract('/ Template / id',$ templates)执行相同的操作。
另请查看Cake正在生成的SQL。
如果您还没有使用它,我强烈建议您安装Cake的Debug Kit工具栏 - https://github.com/cakephp/debug_kit/,因为它可以更轻松地调试变量和SQL。
如果您执行上述步骤并且无法解决问题,则至少应该能够将其缩小到一行或两行代码。更新您的答案以显示导致问题的一行或两行,并包括您正在使用的某些变量的print_r。这应该有助于StackOverflow上的其他人给你一个特定的答案。
希望有所帮助!
答案 1 :(得分:0)
问题是我在点击链接
时没有获取参数function view($name){
$fields = $this->Template->Field->find('list',array(
'fields'=> array('name'),
'conditions' => array(
'template_id'=> $name)));
$this->set('field', $fields);
}
和视图
<div class = "conlinks">
</br><h2>Here is your template fields</h2>
<?php foreach($field as $name): ?>
<tr>
<td align='center'>
<?php echo $name; ?>
</tr></br>
<?php endforeach; ?>
</br>
<?php
echo $this->Html->link('Back', '/templates/view', array('class' => 'button'));?>
</div>