0

テーブル「User」とコントローラー「users_controller.php」があり、「cateogry」という別のテーブルがあり、「listall」アクション(site.com/users/listall)でこのテーブルから値を取得する必要があります。

別のテーブルから値を取得するにはどうすればよいですか。

4

3 に答える 3

1

カテゴリを含むselect要素を埋めるには、ユーザーbelongsToカテゴリの関係があると仮定します。

  • コントローラで、選択した要素で使用できるようにカテゴリを準備します
$ category = $ this-> User-> Category-> find('list');
$ this-> set(compact('categories'));
  • ビューで、選択した要素を追加します。
echo $ form-> input('User.category_id');

Cakeは、Inflectorのおかげ$categoriesで、selectの変数に含まれている値を自動的に使用します。category_id何らかの理由で値が別の変数にある場合は、

echo $ form-> input('User.category_id'、array('options' => $ values_array));
于 2009-11-02T21:30:54.607 に答える
0

/models/user.php:

var $actsAs = array('Containable');
var $hasMany = array('Category');

/controllers/users_controller.php:

function listall()
{
    $users = $this->User->find('all', array('contain' => array('Category')));
    $this->set('users', $users);
}

/views/users/listall.ctp:

foreach($users as $user)
{
    echo htmlspecialchars($user['User']['username']);
    echo '<ul>';
    foreach($user['User']['Category'] as $category)
    {
        echo '<li>';
        echo htmlspecialchars($category['description']);
        echo '</li>';
    }
    echo '</ul>';
}

デバッグ関数を使用して、$users配列を表示します。

debug($users);

封じ込め可能な動作に関するドキュメントを確認してください。

http://book.cakephp.org/view/474/Containable

于 2009-10-20T19:15:33.067 に答える
0

User モデルと Category モデルの間に hasMany 関係があると思いますか?

そしたら案外簡単。

$this->User->find('first')->Category->find('all');

ユーザーに関連付けられたすべてのカテゴリを取得します。

あなたに役立つかもしれないいくつかのリソース:

于 2009-10-19T17:24:20.323 に答える