我在模型中创建了一个方法来从数据库中获取数据,然后使用不同的方法参数($ param)值在控制器中多次调用它。这仅适用于一个首先出现的参数值。我知道我这样做的方式不对,但我无法找到解决方案。请帮忙。
实际上,我正在尝试根据类型(' wordpress',' magento'' shopify')来构建数据库
My_model.php
class My_model extends CI_Model{
public function fun_name($param){
return $this->db->get_where('categories', array('type' => '$param'));
}
}
My_controller.php
class My_controller extends CI_Controller{
public function get_data(){
$this->load->model('my_model');
$data = array(
'first' => $this->my_model->fun_name('wordpress'),
'second' => $this->my_model->fun_name('magento'),
'third' => $this->my_model->fun_name('shopify')
);
$this->load->view('index', $data);
}
}
答案 0 :(得分:1)
如果这是您的实际代码,
class My_model extends CI_Model{
public function fun_name($param){
if($param = one){
return $this->db->get_where('table', array('id' => '$param'));
}
}
}
然后问题出现在下面这一行 -
if($param = one){
将其更改为
if($param == 'one'){
并在此
return $this->db->get_where('table', array('id' => '$param'));
将其更改为下面的这一行,因为您不需要围绕变量
的引号return $this->db->get_where('table', array('id' => $param));
显然,您的代码可以更好地进行优化,即您可能不需要 - 否则就像您正在做的那样但又不知道完整的情况,推荐解决方案并不容易。
答案 1 :(得分:1)
如果您想使用一个查询从同一个表中选择不同的ID,那么您可以执行以下操作:
型号:
class My_model extends CI_Model{
public function fun_name($params){
$this->db->where_in('id', $params);
return $this->db->get('table');
}
}
控制器:
class My_controller extends CI_Controller{
public function get_data(){
$this->load->model('my_model');
$params = array('first', 'sec', 'third');
$data['values'] = $this->my_model->fun_name($params);
$this->load->view('index', $data);
}
}
您还可以查看Codeigniter文档: https://www.codeigniter.com/user_guide/database/query_builder.html#selecting-data
答案 2 :(得分:1)
如何改变
if($param = 'one'){
到
if($param == 'one'){
答案 3 :(得分:1)
你能试试吗?
你的控制器
's'(115)
模型
class My_controller extends CI_Controller{
public function get_data(){
$this->load->model('my_model');
$data['data'] = array(
'first' => $this->my_model->fun_name('param1'),
'second' => $this->my_model->fun_name('param2'),
'third' => $this->my_model->fun_name('param3')
);
$this->load->view('index', $data);
}
}
视图
class My_model extends CI_Model{
public function fun_name($param){
return $this->db->get_where('categories', array('type' => $param))->row()->category_name;
}
}