所以,我正在使用以下代码进行选择:
// 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 ')'
答案 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->id
和user->usrname
而不是$user['username']
感谢@Samutz让主要组件正确无误!
答案 2 :(得分:0)
我认为你得到的结果是数组而不是对象。所以你可以使用以下代码。
$data['message_to_options'] = array();
foreach ($users as $user) {
$data['message_to_options'][$user['id']] = $user['username'];
}