如何没有数据库错误的ProductController 42S22

时间:2014-06-20 16:59:50

标签: cakephp

我做了一个应用程序,显示一些产品的价格为注册人。 在创建产品页面时显示我"数据库错误" "错误:SQLSTATE [42S22]:未找到列:1054未知列' Product.utype'在' where子句'"

我的ProductsController是这样的:

class ProductsController extends AppController {


    public function index() {
       $this->Product->recursive = 0;

       $products = $this->Product->find('all');
       $this->set('products', $Product);

    }

    /**
    * view method
    *
    * @throws NotFoundException
    * @param string $id
    * @return void
    */

    public function view($id = null) {
        $this->Product->id = $id;
            if (!$this->Product->exists()) {
                throw new NotFoundException(__('Invalid Product'));
            }
        $this->set('products', $this->Product->read(null, $id));
    }
}

Model Product.php是这样的:

class Product extends AppModel {
public $primaryKey = 'id_prod';
/**
 * belongsTo associations
 *
 * @var array
 */
    public $belongsTo = array(
        'Occurrence' => array(
            'className' => 'Occurrence',
            'foreignKey' => 'occurrence_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        ),
        'User' => array(
            'className' => 'User',
            'foreignKey' => 'user_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        )
    );
}

可以帮助我吗? 谢谢。

1 个答案:

答案 0 :(得分:1)

根据非常明确的错误:

  

错误:SQLSTATE [42S22]:找不到列:1054未知列   'where子句'中的'Product.utype'“

您的代码正在查找products表中的列'utype'(显然不存在)。如果您不确定代码在哪里告诉它,只需在项目范围内搜索“utype”并将其更新为正确的字段名称。