控制器中未定义的索引(CakePhp)

时间:2014-08-27 13:55:04

标签: cakephp

我有以下代码,它根据id从表“products”中选择产品。

public function p_details(){
$productIdNum = $this->params['detailID'];

        //$this->Product->read(null, $productIdNum);

        if(Validation::naturalNumber($productIdNum) == true){
            $itemById = $this->Product->find('all', array('conditions' =>
            array('Product.id' => $productIdNum)));

            if(count($itemById) > 0){
                $this->set('itemDetails', $itemById['Product']['id']);
            }
        }

    }

但是当我尝试在视图中打印变量“$ itemDetails”时, 像<?php echo $itemDetails['Product']['name']; ?> 它给了我这个错误: 未定义的索引:产品。如果我把它改成这个 像<?php echo $itemDetails['name']; ?> 它仍然给我同样的错误:未定义的索引:名称。 我无法弄清楚这一点。

1 个答案:

答案 0 :(得分:1)

嗯,问题在于$this->set('itemDetails', $itemById['Product']['id']);您为itemDetails变量分配了ID而不是数组。将其更改为$this->set('itemDetails', $itemById);,它应该有效。