رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Virtual fields
#1
درود بر کیک پزان گرامی.
امروز میخوام در مورد Virtual fields یه آموزش کوچولو بزارم.
شاید در دستورات SQL به همچین دستوراتی برخورد کردید

کد:
SELECT SUM(number) as Total FROM `answers` WHERE question_id=15

یه سری توابع در دستورات SQL وجود دارند مثل sum,max,.... که موقتا در یه فیلد ذخیر میشوند که قابل خواندن هستند مثل دستور
بالا که مجموع فیلدهای number با توجه به شرط موقتا در Total ذخیر میشود.

طبق تعریف خود سایت کبک فیلدهای مجازی همین کار رو انجام میدهند...
تعریف فیلد مجازی در مدل صورت میگیرد البته میتوان طبق نیاز در کنترلر هم تعریف کرد. کوئری بالا را میتوان این چنین تعریف کرد:


کد پی‌اچ‌پی:
$this->Answer->virtualFields = array(
 
             'total' => 'sum(number)',
 
          );
 
      $options = array(
 
             'fields' => array(
 
                     'Answer.total',
 
             ),
 
             'conditions' => array(
 
                     'question_id' => '15',
 
             ),
 
       );
 
        $data $this->Answer->find('all'$options);
 
        $this->set('data',$data); 

در خروجی فیلد موقتی به نام total با مقدار ظاهر خواهد شد... کاربردهای فراوانی دارد و از آنجا که ORM کیک بسیار قوی هست
نیازی به تعریف کوئری در کدهامون نیست .. با تشکر
پاسخ
سپاس شده توسط gha3m ، saeid ، payamsp


پیام‌های این موضوع
Virtual fields - vahidqara - 2015/03/04, 12:39 PM
RE: Virtual fields - gha3m - 2015/03/04, 04:19 PM
RE: Virtual fields - vahidqara - 2015/03/11, 10:33 AM

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان