从Codeigniter中的内部视图调用控制器方法

时间:2010-06-08 12:38:48

标签: php codeigniter

有没有办法使用codeigniter从我们的视图中调用控制器内部的方法。我知道这是一个不好的做法,但现在我强迫这样做。谢谢你

4 个答案:

答案 0 :(得分:9)

如果要调用当前控制器的函数,则必须以这种方式获取当前控制器的实例:

private void _txtFilterEmail_TextChanged(object sender, EventArgs e)
{
     BindingSource bs = new BindingSource();
     bs.DataSource = dataGridView1.DataSource;
     bs.Filter = string.Format("[{0}] LIKE '%{1}%'",
     dataGridView1.Columns[1].HeaderText.ToString(), _txtFilterEmail.Text);
     dataGridView1.DataSource = bs;
}

答案 1 :(得分:7)

你可以这样做:

$this->controller_method();

虽然这可能会回答你的问题,但我个人同意 - Matthew J Morrison和DamienL的评论。

答案 2 :(得分:4)

在您的控制器中

$data['myClass'] = $this;

这样,当您将数据发送到视图时,它将加载控制器:)

然后你可以访问像

这样的方法
$myClass->method();

答案 3 :(得分:4)

在控制器中:

$this->method_call =& get_instance(); 

在视图中

$this->method_call->show();