根据Codeigniter中的结果将结果从Model传递到Controller

时间:2014-04-21 12:37:37

标签: php codeigniter

无法解决这个问题的最佳方式 - 我有一个模型将产品添加到购物车中;

$this->db->select('*');
$this->db->from('products');
$this->db->where('product_id',$pid);
$query = $this->db->get();    
$products = $query->result_array();     
$stock =  $products['0']['stock']; 
$quantity = 2;

$cart = $this->cart->contents();
$found = false;

foreach($cart as $items)
{                               
    if($pid == $items['id']  ){

        if ($items['qty'] + $quantity <= $stock){
            $this->cart->update(array(
                'rowid' => $items['rowid'],
                'qty'   => $items['qty'] + $quantity
                ));     
            $found = true;      
            $SEND MESSAGE SAYING ADDED TO CART
        }
        else {
            $found = true;      
            $SEND MESSAGE SAYING NOT ENOUGH STOCK
        }             
    }           
} 
if($found == false){
    $data = array(
               'id'    => $products[0]['product_id'],
               'name'  => $products[0]['name'],
               'qty'   => $quantity,
               'price' => $products[0]['price']
                 );
    if ($quantity <= $stock)
    {
        $this->cart->insert($data); 
    }
    else {
        echo "Not enough stock";
    }

}

return $this->cart->contents();

将消息返回给控制器的最佳方法是什么,以便我可以向用户显示已添加项目/库存不足?

我读过我可以使用&#34;返回&#34; - 但是我正在使用return $ this-&gt; cart-&gt; contents();在功能的底部,我不知道该去哪里。

我可能会以完全错误的方式看待这一点,但如果有人能告诉我处理这种情况的最佳方法,我将非常感激。

下进行。

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

$data           = array();
$data['cart']   = $this->cart->contents();
$data['msg']    = 'Your message here';
return $data;

而且,在您的控制器中,只需根据需要取出元素,例如:

$return = $this->model->function();  //your model return here $return
$cart   = $return['cart'];           //cart contents
$msg    = $return['msg'];            //the message added from the model