我正在尝试将此功能((click_add))放入库中,以便我可以从所有控制器中调用它。我已经在库中有get_ads()函数。我尝试了各种方法将click_add(id)函数转换为库并调用它以与get_ads一起查看但不起作用。请帮忙
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']. '"/>');
}
请建议我如何使用库
实现这一目标答案 0 :(得分:3)
记住MVC模式的每个部分的作用也很重要。在 click_add()方法中,您似乎正在渲染视图并导致重定向。这些是最适合控制器而不是库的两件事。渲染视图和重定向是必须由控制器负责的两件事,实际上,您将无法通过URL访问它们,这就是您在此处尝试做的事情。
如果您想在网站中的多个控制器中重复使用此方法,请尝试creating a MY_Controller core class and extending your controllers from that。这样,您在MY_Controller中定义的任何方法都可以在您子类化的任何控制器中使用。
如果没有任何特定的错误信息或者您所遇到的问题的详细描述,我担心我能给您的帮助更多。