框架:CI
情况:
我在codeigniter中有这个非常令人沮丧的问题。
这是代码:(控制器)
class sampleController extends CI_Controller {
function index() {
data['message'] = 'something';
data['js'] = array('script1.js', 'script2.js');
data['css'] = array('style1.css', 'style2.css', 'style3.css');
$this->load->model('user_model');
$user = $this->input->post('username');
data['user_id'] = $this->user_model->getUserIdByUsername($user);
data['user_info'] = $this->user_model->getAllUserInfo($user);
$this->load->view('someview', $data);
}
}
好的,我的控制器去了,我传递了几个数据,比如js
,,和css
user_id
user_info
这是我的模型中的方法:
getUserIdByUsername($user) {
$this->db->select("id");
$this->db->where("username", $user);
$result = $this->get("users");
return $result->row();
}
getAllUserInfo($user) {
$this->db->select("first_name, last_name, age");
$this->db->where("username", $user);
$result = $this->get("users");
return $result->row();
}
问题出现在视图中,当我尝试访问控制器传递的所有变量时
- 如果我尝试回显
$message
,它将像这样正确渲染=something
如果我尝试循环使用 foreach
$js
并$css
像这样foreach($js as $key){//echo script here}
foreach($css as $key){// echo link rel stylesheet here}
<script src='script1.js'></script><script ...></script>
它会像迭代$js
一样正确渲染css
但如果我尝试回显 $user_id 。. 它不会,因为。它是一个对象。
所以为了解决这个问题我所做的是。. <?php foreach($user_id as $id){} ?>
在这种情况下,我可以回显 $id 无论如何,这样我就可以简单地回显它,而不会出现混乱的 foreach。
我明白,当我谈到时$user_info
,这样做很好,foreach($user_info as $key => $value){$info[$key]=$value}
但是在视图中是否有更好的方法呢?
也许在视图可以使用之前发送数组而不是对象?
非常感谢
编辑:固定相同的方法名称;