Как сделать ProductController без ошибки базы данных 42S22

#cakephp

#cakephp

Вопрос:

Я делаю приложение, которое показывает некоторые продукты с ценой для зарегистрированных пользователей. При создании страницы продукта покажите мне «Ошибка базы данных» «Ошибка: SQLSTATE [42S22]: столбец не найден: 1054 Неизвестный столбец ‘Product.utype’ в ‘where clause'»

Мой 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));
    }
}
 

И модель 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:

За очень явную ошибку:

Ошибка: SQLSTATE[42S22]: столбец не найден: 1054 Неизвестный столбец ‘Product.utype’ в ‘where предложение'»

Ваш код ищет столбец ‘utype’ в products таблице (который, по-видимому, не существует). Если вы не уверены, где ваш код сообщает ему об этом, просто выполните поиск по всему проекту для «utype» и обновите его до правильного имени поля.