/
  • مرتب کردن بر اساس تعداد relation

  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی مرتب کردن بر اساس تعداد relation
    نویسنده پیام
    desatir7316 آفلاین
    عضو
    ***

    ارسال‌ها: 91
    تاریخ عضویت: ۱۳۹۰ آبان ۲۵
    اعتبار: 0
    تشکرها : 2
    ( 6 تشکر در 6 ارسال )
    ارسال: #1
    مرتب کردن بر اساس تعداد relation
    سلام
    من دوتا جدول دارم، فرض کنید آزمون و سوال
    حالا می خوام توی gridview مربوط به آزمون یه ستون اضافه کنم به عنوان تعداد سوال و بتونم gridview رو بر اساس این تعداد سوال مرتب کنم

    ممنون می شم راهنمایی کنید مخصوصا قسمت مرتب کردن رو
    ۱۳۹۴ آبان ۱۳ ۱۱:۳۳ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    mohammadhosain آفلاین
    محمد حسین
    ***

    ارسال‌ها: 217
    تاریخ عضویت: ۱۳۹۱ شهريور ۱۵
    اعتبار: 16
    تشکرها : 85
    ( 135 تشکر در 92 ارسال )
    ارسال: #2
    RE: مرتب کردن بر اساس تعداد relation
    .سلام
    یه مثال ساده (فقط دقت کن که داده ارسالی به گریدویو به جای شی ، آرایه خواهد بود!) :
    کد PHP:
    $dataProvider = new ActiveDataProvider ( [ 
                    
    'query' => Azmoon::find ()->select(['azmoon.*','(select count(question.id) from question where question.azmoon_id = azmoon.id) as cq'])->asArray(),
                    
    'sort' => [ 
                            
    'attributes' => [ 
                                    
    /*other columns for sorting*/,
                                    
    'cq' 
                                    

                        ]
                ] ); 
    داخل گریدویو هم کافیه یه ستون به نام cq اضافه کنی.
    __________________________________________________________________________
    سامانه یادآوری خمس
    سایت هدیه صلوات،حاجت،آرامگاه مجازی+اپلیکشن موبایل
    سایت نظرسنجی
    https://github.com/mhfeizi
    (آخرین ویرایش در این ارسال: ۱۳۹۴ آبان ۱۴ ۱۰:۴۴ صبح، توسط mohammadhosain.)
    ۱۳۹۴ آبان ۱۴ ۱۰:۳۶ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    desatir7316 آفلاین
    عضو
    ***

    ارسال‌ها: 91
    تاریخ عضویت: ۱۳۹۰ آبان ۲۵
    اعتبار: 0
    تشکرها : 2
    ( 6 تشکر در 6 ارسال )
    ارسال: #3
    RE: مرتب کردن بر اساس تعداد relation
    مرسی
    حل شد. فقط من دوباره به شکل object فرستادم و البته درست کار کرد
    به جز تاثیر روی سرعتش، تاثیر منفی دیگه ای هم داره؟
    ۱۳۹۴ آبان ۱۴ ۱۱:۳۱ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    mohammadhosain آفلاین
    محمد حسین
    ***

    ارسال‌ها: 217
    تاریخ عضویت: ۱۳۹۱ شهريور ۱۵
    اعتبار: 16
    تشکرها : 85
    ( 135 تشکر در 92 ارسال )
    ارسال: #4
    RE: مرتب کردن بر اساس تعداد relation
    منظور من سرعت نبود. چون شما داخل مدل خودتون cq رو به عنوان attribute ندارین طبیعتا باید خطا می داد!
    __________________________________________________________________________
    سامانه یادآوری خمس
    سایت هدیه صلوات،حاجت،آرامگاه مجازی+اپلیکشن موبایل
    سایت نظرسنجی
    https://github.com/mhfeizi
    ۱۳۹۴ آبان ۱۴ ۱۱:۵۶ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    desatir7316 آفلاین
    عضو
    ***

    ارسال‌ها: 91
    تاریخ عضویت: ۱۳۹۰ آبان ۲۵
    اعتبار: 0
    تشکرها : 2
    ( 6 تشکر در 6 ارسال )
    ارسال: #5
    RE: مرتب کردن بر اساس تعداد relation
    نه ارور نمی ده، باید ارتباطش بدی به یه attribute که خودت تغریف می کنی و توی gridview و rule ها هم می ذاریش:
    البته من cq رو عوض کردن با questionCount
    کد PHP:
    public $boughtCount;

    ...

     public function 
    rules()
        {
            return [
                [[... 
    'questionCount',...], 'integer'],
            ];
        }

    ...
    $query Exam::find()->select([
                    
    'exam.*',
                    
    '(select count(question.id) from question where question.exam_id = exam.id) as questionCount',
                ])
    ...
    ...
    ....

     
    $dataProvider->sort->attributes['createdAtText'] = [
                
    'asc' => ['created_at' => SORT_ASC],
                
    'desc' => ['created_at' => SORT_DESC],
            ]; 
    ۱۳۹۴ آبان ۱۵ ۰۳:۲۸ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : mohammadhosain
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS