Php 将控制器功能转移到codeigniter中的库中
我正在尝试将此函数((单击添加))放入库中,以便可以从所有控制器调用它。我在库中已经有get_ads()函数。我尝试了各种方法将click_add(id)函数转换为library,并将其与get_广告一起调用以查看,但都不起作用。请帮忙Php 将控制器功能转移到codeigniter中的库中,php,codeigniter,Php,Codeigniter,我正在尝试将此函数((单击添加))放入库中,以便可以从所有控制器调用它。我在库中已经有get_ads()函数。我尝试了各种方法将click_add(id)函数转换为library,并将其与get_广告一起调用以查看,但都不起作用。请帮忙 function __construct() { parent::__construct(); $this->load->library('ads'); $this->load->model('MGlobal');
function __construct() {
parent::__construct();
$this->load->library('ads');
$this->load->model('MGlobal');
}
public function index(){
$data['banner']= $this->ads->get_ads();
$this->load->view('test',$data);
}
//i want this in library but no luck
public function click_add($ads_id){
$ads_site = $this->MGlobal->getAds($ads_id);
$this->MGlobal->add_ads_view();
redirect($ads_site['url']);
}
//观点是这样的
foreach($banner as $k=>$list){
echo anchor('test/click_add/'.$list['bannerid'],'<img src="'. $list['image']. '"/>');
}
foreach($k=>$list作为横幅){
回声锚(“测试/点击添加/”.$list['bannerid'],'');
}
请告诉我如何使用library实现这一点,记住MVC模式每个部分的作用也很重要。在单击\u add()方法中,看起来您正在渲染视图并导致重定向。这两件事最适合控制器而不是库。呈现视图和重定向是控制器必须负责的两件事,实际上,您将无法通过URL访问它们,而这正是您在这里尝试做的 如果要跨站点中的多个控制器重用此方法,请尝试。这样,您在MY_控制器中定义的任何方法都将在您从中创建子类的任何控制器中可用
如果没有任何特定的错误消息或对您遇到的问题进行更详细的描述,恐怕我无法为您提供更多的帮助。记住MVC模式中每个部分的作用也很重要。在单击\u add()方法中,看起来您正在渲染视图并导致重定向。这两件事最适合控制器而不是库。呈现视图和重定向是控制器必须负责的两件事,实际上,您将无法通过URL访问它们,而这正是您在这里尝试做的 如果要跨站点中的多个控制器重用此方法,请尝试。这样,您在MY_控制器中定义的任何方法都将在您从中创建子类的任何控制器中可用
如果没有任何具体的错误消息或对您遇到的问题进行更详细的描述,恐怕我无法为您提供更多帮助。您无法路由到库的函数。可能重复:您无法路由到库的函数。可能重复: