1

こんにちは、私の関数には 2 つの SQL ステートメントがあります。$accounts の結果を取得し、それを 2 番目のステートメントの where 句として使用したいと考えています。accounts_users テーブルから account_id を取得しようとしているので、そのアカウントに関連するテンプレートを取得できます。

2 つの検索結果は $templates と $accounts と呼ばれます。最初のクエリの結果を template.account_id= 'answer' に使用する必要があります。

SELECT `AccountsUser`.`id`, `AccountsUser`.`account_id` FROM `pra`.`accounts_users` AS `AccountsUser` WHERE `id` = 14 LIMIT 1

SELECT `Template`.`id`, `Template`.`name`, `Template`.`description`, `Template`.`account_id` FROM `pra`.`templates` AS `Template` WHERE `Template`.`account_id` = ''

これは私のコントローラーのコードです

$this->Template->unbindModel(array('belongsTo'=>array('Account')));
        $templates = $this->Auth->user('name');
        $accounts=$this->User->AccountsUser->find('first', array('fields'=>array('id','account_id'),'conditions' =>     array('id' => $this->Auth->user('id'))));
        $this->set('Templates', $this->Template->find('all', array('conditions' => array('Template.account_id' => $accounts))));
        $this->set('templates', $templates);
        $this->set('accounts'. $accounts);

ビュー「ビュー」

<div class = "conlinks">        

<table width="100%" border="1">

            <table width="100%" border="1">
                <tr>
                    <th>Template Name</th>
                    <th>Template Description</th>

                </tr>

                <?php foreach($templates as $template): ?>
                    <tr> 
                        <td align='center'><?php echo $template['Template']['name']; ?></td>
                        <td align='center'><?php echo $template['Template']['description']; ?></td>
                    </tr>
                <?php endforeach; ?>

            </table>

</div>              
    </table>
4

1 に答える 1

1

次の使用を試みることができます。

    $this->Template->unbindModel(array('belongsTo'=>array('Account')));
    $templates = $this->Auth->user('name');
    $accounts=$this->User->AccountsUser->find('list', array('fields'=>array('id', 'account_id'),'conditions' =>  array('user_id' => $this->Auth->user('id'))));       
    $this->set('Templates', $this->Template->find('all', array('conditions' => array('Template.account_id' => $accounts['AccountsUser']))));
    $this->set('templates', $templates);
    $this->set('accounts'. $accounts);

うまくいかない場合は、お気軽にお問い合わせください。

于 2012-08-07T06:52:20.947 に答える