创建codeigniter表单选择

时间:2014-03-08 00:20:17

标签: php codeigniter

所以,我正在使用以下代码进行选择:

// Controller Code 
$data['message_to_options'] = array(
   '1' => 'username 1',
   '2' => 'username 2',
);

// View Code 
<?php echo form_dropdown('message_to', $message_to_options); ?>

这一切都很棒。除了用户需要动态创建而不是硬编码。

我有来自ion_auth的以下代码用于代码点火器。这将获得系统中的所有用户。这就是我想要做的。

$users = $this->ion_auth->users()->result();

我只需要一种方法将它们放在一起。我尝试了以下但它无法正常运行。

$users = $this->ion_auth->users()->result();

$data['message_to_options'] = array(
   foreach($users $user){
     '$user['id']' => '$user['username']',
   }
);

我认为它不会起作用,但我想我会试一试。什么是PHP和代码点火器“合法”的方式这样做?

更新

因此,当我运行此代码时,我收到此错误:

Parse error: syntax error, unexpected 'foreach' (T_FOREACH), expecting ')'

3 个答案:

答案 0 :(得分:0)

你不能把foreach放在这样的数组中。 foreach语句也需要“as”。

试试这个:

$data['message_to_options'] = array();
foreach ($users as $user) {
   $data['message_to_options'][$user->id] = $user->username;
}

答案 1 :(得分:0)

这就是我最终做的事情:

$users = $this->ion_auth->users()->result();

$data['message_to_options'] = array();

foreach ($users as $user) {
   $userID = $user->id;
   $username = $user->username;
   $data['message_to_options'][$userID] = $username;
}

在将选择添加到数组之前,我声明了用户ID和用户名。我还使用了正确的格式user->iduser->usrname而不是$user['username']

感谢@Samutz让主要组件正确无误!

答案 2 :(得分:0)

我认为你得到的结果是数组而不是对象。所以你可以使用以下代码。

$data['message_to_options'] = array();
foreach ($users as $user) {
   $data['message_to_options'][$user['id']] = $user['username'];
}