Yii Framework Forum: انواع جستجوها در اکتیو رکورد - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

انواع جستجوها در اکتیو رکورد

#1 User is offline   Shahcheraghean 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 478
  • Joined: 12-December 12
  • Location:Mashhad, IRAN

Posted 20 April 2013 - 10:00 AM


با سلام.
انواع جستجوها در Active Record چیا هستند؟
درباره find(), findAll() و... می دونم، بیشتر می خواهم تفاوت های اینها را بدانم و اینکه کدامیک برای کجا استفاده می شود؟



www.shgn.ir
www.shgn.ir/yii-framework/
yii2.swsco.ir
In a world without any fences or walls,Who needs Gates or Windows!
0

#2 User is offline   mereeelin 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 42
  • Joined: 29-October 11

Posted 20 April 2013 - 02:39 PM

View PostShahcheraghean, on 20 April 2013 - 10:00 AM, said:


با سلام.
انواع جستجوها در Active Record چیا هستند؟
درباره find(), findAll() و... می دونم، بیشتر می خواهم تفاوت های اینها را بدانم و اینکه کدامیک برای کجا استفاده می شود؟






سلام
اولین و مهمترین تفاوت این ۲ تا اینه که نتیجه تابع
find()
یک ابجکت خواهد بود اما نتیجه
findAll()
یک آرایه از آبجکت هاست

تفاوت های بعدی اینکه زمانی که از
find()
استفاده می کنیم :
حتما باید شرط نوشته شود و خود تابع به تنهایی قابل اجرا نیست

اولین مقداری که شرط را برآورده کند بازگردانده می شود و حتی اگر مقادیر دیگری وجود داشته باشد ، به آنها کاری ندارد

در صورتی که جستجو نتیجه ای نداشته باشد مقدار
NULL
برمیگرداند

مقداری که به عنوان نتیجه بازگردانده می شود به عنوان یک آبجکت به راحتی قابل لستفاده می باشد به عنوان مثال

$post=Post::model()->find($condition,$params);
echo $post->title


تابع
findByPk()
هم تمامی شرایط تابع
find()
را دارد با این تفاوت که میتواند علاوه بر شرط و پارامتر یک فیلد هم به عنوان کلید اصلی به صورت مستقیم بگیرد مانند :
$post=Post::model()->findByPk($postID,$condition,$params);


اما برای تابع
findAll()
شرایط به شرح زیر می باشد:

حتما نباید شرط نوشته شود و خود تابع به تنهایی قابل اجرا است
$post=Post::model()->findAll()

تمامی مقادیری که در شرط صادق باشند برگردانده می شود

در صورتی که جستجو نتیجه ای نداشته باشد یک آرایه خالی برگردانده میشود

برای توضیحات بیشتر این مقاله رو بخونید
مطلب تکمیلی


1

#3 User is offline   Shahcheraghean 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 478
  • Joined: 12-December 12
  • Location:Mashhad, IRAN

Posted 21 April 2013 - 02:03 AM

دست شما درد نکنه. مشکلم بیشتر با نحوه استفاده از اینها است. مخصوصا زمانی که از چندتا مدل رابطه دار استفاده می کنیم.

http://www.yiiframew...en/database.arr
این را دیدم ولی متأسفانه فقط برای نحوه ارتباط مدلها گفته بود. ولی برای واکشی این اطلاعات خیلی نگفته بود.

www.shgn.ir
www.shgn.ir/yii-framework/
yii2.swsco.ir
In a world without any fences or walls,Who needs Gates or Windows!
0

#4 User is offline   mereeelin 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 42
  • Joined: 29-October 11

Posted 21 April 2013 - 02:16 AM

View PostShahcheraghean, on 21 April 2013 - 02:03 AM, said:

دست شما درد نکنه. مشکلم بیشتر با نحوه استفاده از اینها است. مخصوصا زمانی که از چندتا مدل رابطه دار استفاده می کنیم.

http://www.yiiframew...en/database.arr
این را دیدم ولی متأسفانه فقط برای نحوه ارتباط مدلها گفته بود. ولی برای واکشی این اطلاعات خیلی نگفته بود.




منظورت از واکشی اطاعات رو متوجه نمیشم .
خوب یه
criteria
می نویسی و از طریق اون شرط هاتو مشخص می کنی و این توابع برات داده رو پیدا می کنن .

0

#5 User is offline   Shahcheraghean 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 478
  • Joined: 12-December 12
  • Location:Mashhad, IRAN

Posted 21 April 2013 - 02:20 AM

نه نه. منظورم از واکشی همون select از دیتابیس است. البته نمی خوام از DAO استفاده کنم. بلکه با همین روشها می خوام ببینم چطوریه؟
مثلا اون جایی که

$posts=Post::model()->with('author')->findAll();

می گیره. می خوام ببینم چطوری از خروجی به دست میاره. و از آن چطور در ویو ها میشه استفاده کرد و یا حتی بعدا از آنها در create یا update هم استفاده کرد.

www.shgn.ir
www.shgn.ir/yii-framework/
yii2.swsco.ir
In a world without any fences or walls,Who needs Gates or Windows!
0

#6 User is offline   Hesam 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 66
  • Joined: 12-November 12
  • Location:Toronto

Posted 21 April 2013 - 12:45 PM

View PostShahcheraghean, on 21 April 2013 - 02:20 AM, said:

نه نه. منظورم از واکشی همون select از دیتابیس است. البته نمی خوام از DAO استفاده کنم. بلکه با همین روشها می خوام ببینم چطوریه؟
مثلا اون جایی که

$posts=Post::model()->with('author')->findAll();

می گیره. می خوام ببینم چطوری از خروجی به دست میاره. و از آن چطور در ویو ها میشه استفاده کرد و یا حتی بعدا از آنها در create یا update هم استفاده کرد.



خیلی آسونه بعد از اینکه پست ها رو گرفتی می زنی
foraeach ($posts as $post){
echo $post->title;
or whatever else

}

//if you have used only find and you have only one object, then $post->title will do the jobs.



0

#7 User is offline   Shahcheraghean 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 478
  • Joined: 12-December 12
  • Location:Mashhad, IRAN

Posted 22 April 2013 - 12:21 AM

حالا شما فکر کنید که رابطه مدل ما یک به چند است. مثلا یه محصول چندتا عکس داره.
حالا چطوری باید عکس ها یک محصول را توی ویوی اون محصول بگیرم؟

www.shgn.ir
www.shgn.ir/yii-framework/
yii2.swsco.ir
In a world without any fences or walls,Who needs Gates or Windows!
0

#8 User is offline   Parham Doustdar 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 33
  • Joined: 02-April 11

Posted 22 April 2013 - 02:12 AM

سلام.

شما مثلا توی view برای هر product می خواین مدلهای image مرتبط با اون رو نشون بدین:

public function actionView($id)
{
    $model = Product::model()->findByPk($id);
    $this->render('view', array(
        'model' => $model
    ));
}


توی view:

<?php foreach ($model->images as $image): ?>
    <?php echo CHtml::image($image->path); ?>
<?php endforeach; ?>


امیدوارم جواب سؤالتون رو داده باشم.

ممنون.
2

#9 User is offline   Shahcheraghean 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 478
  • Joined: 12-December 12
  • Location:Mashhad, IRAN

Posted 23 April 2013 - 01:39 AM

دست شما درد نکنه. ببخشید میشه از تگ [rtl] استفاده کنید نوشته هایتان قاطی پاتی شده، به راحتی خونده نمیشه. باید ترجمه بشن.

www.shgn.ir
www.shgn.ir/yii-framework/
yii2.swsco.ir
In a world without any fences or walls,Who needs Gates or Windows!
0

#10 User is offline   msoa 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 260
  • Joined: 15-August 12

Posted 23 April 2013 - 02:35 PM


0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users