0

ビュー関数を作成し、リンクをクリックしてを表示するときはいつでもtemplate、ページ上部のURLは正しいですが、データベース内の同じリストを吐き出し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することであり、フィールドを出力するときに正しくありません。

4

2 に答える 2

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>
于 2012-08-09T01:51:53.383 に答える
0

これを自分でデバッグできるはずです。バグを段階的に絞り込んでください。

手始めに、view関数で、次の変数に対してprint_rを実行し、各変数に論理結果が含まれていることを確認します。

  • $ accounts

  • $ templates

  • $ fields

そこで予期しない結果が見つかった場合は、各検索結果に渡すパラメーターを調べて、問題がないことを確認します。$accountsを配列としてfind条件に渡します-それがcakeが期待する形式と一致することを確認してください。Set :: extract('/ Template / id'、$ templates)についても同じようにします。

Cakeが生成しているSQLも見てください。

まだ使用していない場合は、Cakeのデバッグキットツールバー(https://github.com/cakephp/debug_kit/ )をインストールすることを強くお勧めします。これにより、変数とSQLのデバッグがはるかに簡単になります。

上記の手順を実行しても問題を解決できない場合は、少なくとも1行か2行のコードに絞り込むことができるはずです。回答を更新して、問題の原因となっている1行か2行を示し、使用している変数のいくつかのprint_rを含めます。それはあなたに特定の答えを与えるためにStackOverflowの他の人を助けるはずです。

お役に立てば幸いです。

于 2012-08-08T12:29:15.497 に答える