【问题标题】:How to pass a message from model to controller codeigniter?如何将消息从模型传递到控制器codeigniter?
【发布时间】:2015-11-03 07:05:48
【问题描述】:

我想在某些情况下将消息变量从 codeigniter 中的模型传递给控制器​​。但是当我这样做时,它每次都只打印“否”。

型号是

public function add_city() {

    /* Storing form data into an array */
    $data = array(
        'city_name' => $this->input->post('city'),
        'city_overview' => $this->input->post('overview')
    );

    /* Checking if already exist in database */
    $query = $this->db->query("SELECT * FROM city_tbl WHERE city_name='" . $data['city_name'] . "' ORDER BY id ASC");
    $count_row = $query->num_rows();

    if ($count_row > 0) {
        $msg = "No";
    } else {
        $this->db->insert('city_tbl', $data);
        $msg = "Yes";
    }
    return $msg;
}

而控制器是

public function addingCity() {
    $this->add_model->add_city();
    var_dump($msg);
    //redirect("/city");
}

【问题讨论】:

标签: codeigniter


【解决方案1】:

也试试这个

public function add_city() {

$data = array(
    'city_name' => $this->input->post('city'),
    'city_overview' => $this->input->post('overview')
);

/* Checking if already exist in database */
$query = $this->db->query("SELECT * FROM city_tbl WHERE city_name='" .    $data['city_name'] . "' ORDER BY id ASC");
$count_row = $query->num_rows();

if ($count_row > 0) {
    $msg = "No";
} else {
    $this->db->insert('city_tbl', $data);
    $msg = "Yes";
}
return $msg;
}

在控制器上使用 get 方法重定向消息 -

public function addingCity() {
    $msg = $this->add_model->add_city();

    redirect("/city?msg=".$msg);
}

最后在查看页面上打印此消息

echo $this->input->get('msg');

【讨论】:

    【解决方案2】:

    您需要在控制器中为$msg 赋值

    public function addingCity() {
        $msg=$this->add_model->add_city();// assign 
        var_dump($msg);
        //redirect("/city");
    }
    

    【讨论】:

    • 您需要在控制器中为$msg 赋值
    【解决方案3】:

    试试这个

    public function add_city() {    
    
        $city_name = $this->input->post('city');
        $city_overview = $this->input->post('overview');
    
        $query = $this->db->query("SELECT * FROM city_tbl WHERE city_name='$city_name' ORDER BY id ASC");
        $result = $query->result_array()
        $count = count($result);
    
        if(empty($count))
        { 
            $msg = "No";
            return $msg;
        } 
        else{ 
    
            $data = array( 
                'city_name'=>$this->input->post('city'), 
                'city_overview'=>$this->input->post('overview') );
    
            $this->db->insert('city_tbl', $data);
            $msg = "Yes";
            return $msg;
        }
    }
    

    在控制器中

    public function addingCity() {
        $msg = $this->add_model->add_city();
        echo $msg;        
    }
    

    将数据传递给视图

    public function addingCity() {
        $data['msg'] = $this->add_model->add_city();
    
        $this->load->view("filename", $data); # ex $this->load->view("index", $data);
    
    }
    

    【讨论】:

    • 显示此错误严重性:通知消息:未定义变量:msg 文件名:controllers/addstuff.php
    • 仍然错误可能是我们必须将此变量检索到控制器中严重性:警告消息:var_dump() 需要至少 1 个参数,0 给定文件名:controllers/addstuff.php
    • 使用echo 而不是vardump
    • 未定义变量:控制器中的消息
    • 我们可以通过重定向方法将此变量传递给特定页面吗?
    【解决方案4】:

    错误在您的控制器函数中

    试试这个代码

    public function addingCity() {
        $msg = $this->add_model->add_city();
        echo $msg;die;
        //redirect("/city");
    }
    

    【讨论】:

    • 我们可以通过重定向方法将此变量传递到特定页面吗?
    • 发送消息必须检查这个link@KillerHacker
    • 不,您不能使用 redirect() 传递此变量您可以使用会话闪存消息并查看您访问闪存消息@KillerHacker
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多