我正在尝试在视图上打印控制器方法的结果,但它给了我一个错误: 未定义的变量:$ states。有人可以帮我指出我的代码中有什么问题吗?
型号代码:
public function state_names() {
$query = $this->db->select('name')
->get('place')
->where('parent','India');
$query->db->get();
return $query->result();
}
控制器代码:
public function state_names() {
$st['states'] = $this->place_model->state_names();
if ($this->form_validation->run('resource_signup') == TRUE) {
if (isset($st['states']) && $st['states']->num_rows() > 0) {
$this->load->view('/web/resource_signup',$st);
}
}
return array();
}
查看代码:
<?php foreach ($states as $state) {
echo $state->name;
}
答案 0 :(得分:1)
在模型中,您运行查询两次 - 对于每个方法get()。你应该运行一次:
public function state_names() {
$query = $this->db->select('name')
->where('parent','India')
->get('place');
return $query->result();
}
在您的控制器中,您无法检查 num_rows(),因为有结果 - 而不是数据库的完整响应。
public function state_names() {
$st['states'] = $this->place_model->state_names();
if ($this->form_validation->run('resource_signup') == TRUE) {
if (isset($st['states'])) {
$this->load->view('/web/resource_signup',$st);
}
}
return array();
}
答案 1 :(得分:1)
尝试这个
public void showMessage(final String message,final Context mContext) {
runOnUiThread(new Runnable() {
@Override
public void run() {
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setMessage(message)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
})
.setCancelable(false) // cancel with button only
.show();
}
});
}
答案 2 :(得分:0)
你的问题在模型中是第2位,在控制器中是第2位
if(isset($ st ['states'])&amp;&amp; $ st ['states'] - &gt; num_rows()&gt; 0)
和模型
模型解决方案
public function state_names() {
$query = $this->db->select('name')
->where('parent','India')
->get('place');
// $query->db->get();
if($query->num_rows() > 0){
return $query->result();
}
}
N.B [这里将是第一个,并将获得最后的良好做法];
控制器解决方案:
public function state_names() {
$st['states'] = $this->place_model->state_names();
if ($this->form_validation->run('resource_signup') == TRUE) {
if (isset($st['states']) ) {
$this->load->view('/web/resource_signup',$st);
}
}
return array();
}`