我通过URL将参数从视图传递到控制器。现在我想把它从控制器发送到模型,这样我就可以用它从表中提取数据。这是我的代码:
控制器:
function view(){
if(isset($_GET['r'])) {
$rank = $_GET['r'];
}
$rank=$this->uri->segment($rank);
$this->load->model('names_rank');
$data=$this->names_rank->get_names($rank);
print_r($rank);
}
型号:
function get_names($rank){
$this->db->select('u.*,v.*');
$this->db->from('unit_member u, Vyeo v');
$this->db->where('v.fno = u.fno');
$this->db->where('u.present = ""');
$this->db->where('v.rank', $rank);
$this->db->where('v.date_of_end="0000-00-00"');
$query = $this->db->get();
return $query->result_array();
}
结果是:
遇到PHP错误严重性:警告消息:缺少Names_rank::get_name()的参数1,在中调用C: 第32行的''examplep''htdocs''unit''application''controllers''names.php和定义
这将用于发送到模型,但您的代码对我来说不可理解,您在IF中设置变量后重新声明变量吗?你是想打印模型的输出吗?
我认为你可能正在努力实现这一点?
function view() {
if(isset($_GET['r'])) {
$rank = $_GET['r'];
}else{
$rank = $this->uri->segment($rank);
}
$this->load->model('names_rank');
$data = $this->names_rank->get_names($rank);
print_r($data);
}
您可以将参数传递给您的模型。首先,如果你没有在自动加载时启用你的模型,你必须在控制器中调用它。
您的型号:
<?php
class AwesomeModel extends CI_Model
{
publif function do_work($param, $anotherParam)
{
//code here
}
}
Then your controller:
<?php
class AwesomeController extends CI_Controller
{
public function __construct()
{
/*
* load in constructor so not need to recall every time you want use it
* second parameter is model renaming (optional)
*/
$this->load->model('AwesomeModel', 'awe');
}
public function pass_data()
{
$this->awe->do_work($param1, $param2);
}
?>
仅此而已。