if if()内部调用另一个函数

时间:2015-04-20 11:51:37

标签: php codeigniter

public function addcategory() {
        $this->load->model('product_model');
        $new_category = $this->product_model->add_category($this->input->post());
        if ($new_category) {
            $info = array(
                'message' => 'Data Saved sucess',
                'value' => TRUE
            );
            $this->index($info);//not working
        }
        $this->index($info);//working without $info
    }

这里我需要在$this->index($info);内调用if(){}但是它无效...但是当我把这个代码放在if()之外它可以工作但我不能通过$info变量通过$this->index($info);

我在$this->index($info);侧调用函数(if),然后根本不起作用。但是,如果我使用if之外的函数来调用它,但会出现错误' Undefined index:info'。

如何调用index()函数??

3 个答案:

答案 0 :(得分:1)

声明if语句之外的$ info应该有效。 然后在语句外使用索引函数。

public function addcategory() {
    $info = null;
    $this->load->model('product_model');
    $new_category = $this->product_model->add_category($this->input->post());
    if ($new_category) {
        $info = array(
            'message' => 'Data Saved sucess',
            'value' => TRUE
        );
    }
    $this->index($info);//working without $info
}

答案 1 :(得分:0)

解决方案1:

  

您可以使用Redirect方法重定向索引:

$this->session->set_flashdata('info', $info);
redirect('/controller_name/index');
  

获取索引方法的信息:

$info = $this->session->flashdata('info');

<强>溶液2:

  

将此重映射功能添加到控制器:

public function _remap($method)
{
    if ($method == 'some_method')
    {
        $this->$method();
    }
    else
    {
        $this->index();
    }
}

答案 2 :(得分:0)

你的if语句没有对变量$ new_category做任何事情 尝试。

if (isset($new_category) && !empty($new_category)) // check for the existence and value
{

    $info = array(
            'message' => 'Data Saved sucess',
            'value' => TRUE
        );
    $this->index($info);
}
else
{
    $info = array(
            'message' => 'unsuccessful data entry',
            'value' => FALSE
        );
}