如何从视图调用CodeIgniter控制器函数?在我调用控制器中的函数时,得到了一个404页面。
如何从视图调用CodeIgniter控制器函数?在我调用控制器中的函数时,得到了一个404页面。
public function read() {
$object['controller'] = $this;
$this->load->view('read', $object);
}
视图:
// to call controller function from view, do
$controller->myOtherFunct();
public static function myOtherFunct()
) 并从视图中调用它:ControllerName::myOtherFunct()
,无需将类实例或任何其他内容传递给视图。 - pbarneyCodeigniter是一个MVC(模型-视图-控制器)框架。从视图中调用函数并不是一个好主意。视图应该只用于展示,所有逻辑都应该在控制器和模型中发生。
想要澄清最佳实践的一个好的开始,是按照这个教程进行操作:
https://codeigniter.com/user_guide/tutorial/index.html
它很简单,但确实能够提供出色的操作指导。
希望这会有所帮助!
您可以在视图中使用AJAX调用控制器函数。在这种情况下,我使用jQuery库进行调用。
<script type="text/javascript">
$.ajax({
url: "<?=site_url("controller/function")?>",
type: "post", // To protect sensitive data
data: {
ajax:true,
variableX: "string",
variableY: 25
//and any other variables you want to pass via POST
},
success:function(response){
// Handle the response object
}
});
</script>
通过使用 AJAX 方法,在 HTML 容器中重新加载代码部分(模块),您可以这样创建。
<?php
class VCI_Controller extends CI_Controller {
....
....
function abc($id){
return $id ;
}
}
?>
Now You can call this function in view files as below --
<?php
$CI =& get_instance();
$CI->abc($id) ;
?>
$CI = & get_instance();
$result = $CI->FindFurnishName($pera);
public function FindFurnishName($furnish_filter)
{
$FindFurnishName = $this->index_modal->FindFurnishName($furnish_filter);
$FindFurnishName_val = '';
foreach($FindFurnishName as $AllRea)
{
$FindFurnishName_val .= ",".$AllRea->name;
}
return ltrim($FindFurnishName_val,',');
其中
class MY_Controller extends CI_Controller {
public $CI = NULL;
public function __construct() {
parent::__construct();
$this->CI = & get_instance();
}
public function yourMethod() {
}
}
// in view just call
$this->CI->yourMethod();
我可以给出一个建议,
在控制器本身调用该函数并将值返回到视图文件中。例如,
class Business extends CI_Controller {
public function index() {
$data['css'] = 'profile';
$data['cur_url'] = $this->getCurrURL(); // the function called and store val
$this->load->view("home_view",$data);
}
function getCurrURL() {
$currURL='http://'.$_SERVER['HTTP_HOST'].'/'.ltrim($_SERVER['REQUEST_URI'],'/').'';
return $currURL;
}
}
在视图文件(home_view.php)中使用该变量。例如:
echo $cur_url;
class My_controller extends CI_Controller {
public function index() {
$data['val']=3;
$data['square']=function($val){
return $val*$val;
};
$this->load->view('my-view',$data);
}
}
<p>Square of <?=$val?>
<?php
echo $square($val);
?>
</p>
输出结果为9
视图无法调用控制器函数。
ControllerName::methodname();
- Dharmesh patel