PDA

View Full Version : تابع search در مدل ؟!!



hooman.pro
شنبه 26 مهر 1393, 22:32 عصر
سلام میخوام تو تابع سرچم اگر مقدار تکست null ارسال شد تمام مدل هایی که با مدل دیگر رابطه ندارند رو برام پیدا کنه:


public function search()
{
// @todo Please modify the following code to remove attributes that should not be searched.

$criteria=new CDbCriteria;

$criteria->compare('id',$this->id,true);
$criteria->compare('title',$this->title,true);
$criteria->compare('content',$this->content,true);
$criteria->compare('create_time',$this->create_time,true);
$criteria->compare('create_user_id',$this->create_user_id,true);

if($this->test!='null'){
$criteria->compare('user_id',$this->test);
$criteria->with=array('relatedmodel');
$criteria->together=true;
}elseif($this->test=='null'){
$criteria->addCondition('`relatedmodel.`rel_id` IS NULL');
$criteria->with=array('relatedmodel');
$criteria->together=false;
}

return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}


مشکل اینجاست که وقتی togheder رو true میزارم خوب مدل هایی که در ازاشون مدل دیگر تو اون رابطه هست رو میاره و اگرم false بزارم که کلا همه رو بر میگردونه نه اونایی که مدل مربوطه به ازاشون وجود نداره

MMSHFE
چهارشنبه 30 مهر 1393, 08:30 صبح
دوست عزیز together برای تنظیم کردن اینه که Join استفاده بشه یا SubQuery و هیچ ربطی به مسئله شما نداره. شما دقیقاً به فارسی توضیح بدین چی میخواین و منظورتون از تکست چیه (چون توی فیلدهاتون چنین موردی نیست) تا بگم چه کدی باید بنویسید.

hooman.pro
چهارشنبه 30 مهر 1393, 22:03 عصر
ممنون استاد که جواب دادین با یه سری if و else درستش کردم
منظورمم هم
($this->test!='null'
فیلد تست بود که مقدار تکستی نال براش ارسال بشه