[英]How to pass multiple model functions from controller to view in codeigniter?
[英]How to pass multiple parameters from different controller functions on single model function
我有两个控制器函数都需要一个模型函数,但是当我将参数传递给单个模型函数时,它显示一个错误,如果还有另一种方法可以传递参数,则需要帮助
控制者
public function view_files()
{
$assignment_id='1255';
$data['files'] = $this->AdminModel->getRows111();
$this->load->view('admin/view_files', $data);
}
function download_test1(){
$id = $this->uri->segment(3);
if (empty($id)){
redirect(base_url());
}
$data = $this->AdminModel->getRows111($id);
$filename =$data['assignment_file_name'];
$fileContents = file_get_contents(base_url('upload/'.
$data['assignment_file_name']));
force_download($filename, $fileContents);
}
模型
public function getRows111($id=''){
$this->db->select('*');
$this->db->where('assignment_id','1255');
$this->db->from('tbl_assignments_files');
if($id){
$this->db->where('assignment_file_id',$id);
$query = $this->db->get();
$result = $query->row_array();
}else{
$query = $this->db->get();
$result = $query->result_array();
}
return !empty($result)?$result:false;
}
}
功能1
$data['files'] = $this->AdminModel->getRows111(assignment_id);
功能2
$data = $this->AdminModel->getRows111($id);
这样做会显示错误
public function getRows111($id='',$assignment_id){
public function getRows111($id='',$assignment_id=""){
$this->db->select('*');
$this->db->from('tbl_assignments_files');
//if assignment_id is not empty it will add where clause to statement
if($assignment_id != ""){
$this->db->where('assignment_id',$assignment_id);
}
//if id is not empty it will add where clause to statement
if($id != ""){
$this->db->where('assignment_file_id',$id);
}
$query = $this->db->get();
$result = $query->result_array();
return !empty($result)?$result:false;
}
}
调用模型函数时,第一个参数是$ id,第二个参数是$ assignment_id
通过$ id调用模型函数
$data = $this->AdminModel->getRows111($id);
要么
$data = $this->AdminModel->getRows111($id,'');
通过$ assignment_id调用函数
$data = $this->AdminModel->getRows111("",$assignment_id);
通过$ id和$ assignment_id调用函数
$data = $this->AdminModel->getRows111($id,$assignment_id);
希望这可以帮助!
您使用的函数错误,基于function getRows111
它确实有2个参数需要$id
和$assignment_id
正确使用会像这样,
$this->AdminModel->getRows111($id, $assignment_id);
我建议您使它的功能更灵活。
public function getRows111($array){
$id = $array[0];
$assignment_id = $array[1];
}
然后使用带有数组参数的函数
$this->AdminModel->getRows111([$id, $assignment_id]);
处理数组,您希望它更加灵活。
public function getRows111($array){
$id = isset($array['id']) ? $array['id'] : "";
$assignment_id = isset($array['assignment_id']) ? $array['assignment_id'] : "";
}
像这样调用函数
$this->AdminModel->getRows111(
['id' => $id,
'assignment_id' => $assignment_id
]);
// if you want just the id
$this->AdminModel->getRows111(['id' => $id]);
// or the the assignment id
$this->AdminModel->getRows111(['assignment_id' => $assignment_id]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.