我有一个表“用户”和一个控制器“users_controller.php”,我还有另一个名为“cateogry”的表,需要在“listall”操作( site.com/users/listall)中从该表中检索值。
我如何从另一个表中获取值。
我有一个表“用户”和一个控制器“users_controller.php”,我还有另一个名为“cateogry”的表,需要在“listall”操作( site.com/users/listall)中从该表中检索值。
我如何从另一个表中获取值。
要填充包含类别的选择元素,假设您有一个 User belongsTo Category 关系:
$categories = $this->User->Category->find('list'); $this->set(compact('categories'));
echo $form->input('User.category_id');
由于 Inflector,Cake 将自动使用$categories
变量中包含的值进行选择。category_id
如果由于某种原因您的值位于不同的变量中,请使用
echo $form->input('User.category_id', array('options' => $values_array));
/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);
查看有关可包含行为的文档: