这是我的主题add.ctp view
inline-block
**** UsersController.php ****
<?= $this->Form->create($subject) ?>
<fieldset>
<legend><?= __('Add Subject') ?></legend>
<?php
echo $this->Form->input('math');
echo $this->Form->input('english');
echo $this->Form->input('history');
echo $this->Form->input('science');
******this field will display all the users in drop down************* from users table
?>
</fieldset>
<?= $this->Form->button(__('Submit')) ?>
<?= $this->Form->end() ?>
如何实现这一点请帮助我...
答案 0 :(得分:2)
如果你想要主题add.ctp中的用户选择框(Dropdown),那么你应该从SubjectsController的add()发送所有用户列表。
在科目中添加方法
public function add()
{
//Your previous logics
$this->loadModel('Users');
$users= $this->Users->find('list');
$this->set('users', $users);
$this->set('_serialize', ['users']);
//Your previous logics
}
在你的主题add.ctp
<?= $this->Form->create($subject) ?>
<fieldset>
<legend><?= __('Add Subject') ?></legend>
<?php
echo $this->Form->input('math');
echo $this->Form->input('english');
echo $this->Form->input('history');
echo $this->Form->input('science');
echo $this->Form->input('user_id', ['options' => $users]);
?>
</fieldset>
<?= $this->Form->button(__('Submit')) ?>
<?= $this->Form->end() ?>
在您的UsersTable(用户模型)中,添加/编辑您的initialize(),如下所示
$this->displayField('username');
$this->primaryKey('id');
答案 1 :(得分:0)
在控制器
$allUser = $this->Users->find(); // this will be get all user from user table
$this->set('allUser', $allUser);
在查看
/**@var array $allUser */// already type of array
<?= $this->Form->select('all_user', [
'multiple' => true,
'value' => $allUser
]); ?>
答案 2 :(得分:-1)
使用$ this-&gt; Form-&gt; select()或$ this-&gt; Form-&gt; input(&#39; users&#39;,[&#39; options&#39; =&gt; array ()]);
如果你不想做foreach循环。
尝试:
<?= $this->Form->select('users', $users); ?>