find () возвращает NULL Yii - PullRequest
0 голосов
/ 29 июля 2011

find() возвращает NULL, хотя существует строка, соответствующая критериям.

Найти фрагмент

            $tempApp = Applicant::model()->find(array('condition'=>'phn=' . $app->phn . ' AND id<>' . $app->id));

            if($tempApp != NULL) {
                $archId = $this->archive($tempApp);
                if($archId != NULL) {
                    $tempApp->phn = NULL;
                    $tempApp->save();
                    $app->note = 'Former name: ' . $tempApp->first_name . ' ' . $tempApp->middle_name . ' ' . $tempApp->last_name;
                } else {
                    unset($archId);
                }
            }

ПРИМЕЧАНИЕ: Этот код работает во второй раз, когда заявитель обновляется. Я запутался, почему это происходит. Может кто-нибудь дать мне совет, почему это происходит?

ПРИМЕЧАНИЕ: Я пробовал разные способы find() (например, find('phn=:phn AND id<>:id', array(':phn'=>$app->phn, ':id'=>$app->id));

).

Спасибо

Ответы [ 2 ]

1 голос
/ 13 июля 2012

используйте count () вместо NULL

if(count($tempApp)) {
                $archId = $this->archive($tempApp);
                if(count($archId)) {
                    $tempApp->phn = NULL;
                    $tempApp->save();
                    $app->note = 'Former name: ' . $tempApp->first_name . ' ' . $tempApp->middle_name . ' ' . $tempApp->last_name;
                } else {
                    unset($archId);
                }
            }
0 голосов
/ 01 августа 2011

Попробуйте вывести ваш оператор SQL и вставить его во вкладку phpmyadmin sql и посмотреть, получите ли вы результат.

Кроме того, я бы попытался использовать ! Empty () вместо NULL для моего оператора if

...