CakePHP'de: Bir "kedi" değerleri almak

3 Cevap php

Hi i have table "User" and a Controller "users_controller.php" and i have another table called "cateogry", need to retrieve values from this table in the "listall" action(site.com/users/listall).

nasıl ben başka bir tablodan değerler alabilirsiniz.

3 Cevap

Eğer bir kullanıcı belongsTo Kategori ilişki var varsayarak, kategoriler içeren bir seçme elemanı doldurmak için:

  • kontrol olarak, bir seçim elemanı olarak kullanılmak üzere hazır kategoriler
$categories = $this->User->Category->find('list');
$this->set(compact('categories'));
  • görünümünde seçme eleman eklemek:
echo $form->input('User.category_id');

Kek otomatik Inflector için category_id seçeneğini sayesinde $categories değişken içerdiği değerleri kullanır. Nedense senin değerleri, farklı bir değişken, kullanımda ise

echo $form->input('User.category_id', array('options' => $values_array));

Ben size Kullanıcı ve Kategori modelleri arasında bir ilişki var hasMany sanırım?

Sonra ölümcül kolay.

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

Kullanıcı ile ilişkili her kategori alır.

Size yardımcı olabilecek bazı kaynaklar:

/ Modelleri / User.php:

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

/ Kontrolörleri / 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>';
}

$ kullanıcıların dizi ortaya çıkarmak için hata ayıklama işlevini kullanın:

debug($users);

Containable davranışı üzerinde belgelere göz atın:

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