如何在add.ctp视图中将表用户中的所有用户显示到我的主题表

时间:2017-08-23 03:13:48

标签: php cakephp cakephp-3.0

这是我的主题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() ?>

如何实现这一点请帮助我...

3 个答案:

答案 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)

  1. 控制器

    $allUser = $this->Users->find(); // this will be get all user from user table $this->set('allUser', $allUser);

  2. 查看

    /**@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); ?>