2015-05-07 5 views
0

Я хочу добавить условие к моему запросу, которое удалит product_id, что равно 999. В настоящее время я получаю следующую ошибку: Property "CDbCriteria.where" is not defined. Любые предложения?Запрос в Yii - Добавление условия

запрос в моем PHP контроллер

$products = Product::model()->findAll(array(
        "condition" => $condition, 
        "where" => 'product_id != 999', 
        'order' => 'product_name ASC' 
       )); 

Обновленный код Это еще не удаляет product_id 999, но он не выдаст ошибку.

$products = Product::model()->findAll(array(
         "condition" => $condition + 'where product_id != 999', 
         'order' => 'product_name ASC' 
        )); 

ответ

1

Мой исходный код не будет работать, потому что я проходил массив CDbCriteria. Он также не позволяет делать заявление where. Я в конечном итоге конкатенации моего состояния с $condition помощи . и изменил мой where к AND заявлению

Это мой последний выход:

$products = Product::model()->findAll(array(
      "condition" => $condition . ' AND product_id != 999', 
      'order' => 'product_name ASC' 
    )); 
0

Потому что то, что вы здесь делаете, передает массив CDbCriteria. Теперь documentation показывает, что CDbCriteria не имеет свойства с именем «where». Вы можете использовать where в своем $ condition, используя конкатенацию.

DELETE FROM table_name 
WHERE product_id = 999 

Только CDbCommand обладает свойством where

+0

Привет @Rafay Зия Мир спасибо за Ваш ответ. Это то, что у меня есть сейчас: '" condition "=> $ condition + 'где id! = 999', 'заказать' => 'alt_name ASC'', и он по-прежнему не работает. Это то, о чем вы говорите? – ChaseHardin

+0

Я не хочу «удалять 999», я просто не хочу его отображать. – ChaseHardin

+0

Это просто пример, который я вам предоставил. Я ответил на ваш вопрос о «где» –

Смежные вопросы