زمان جاری: 2012/05/24, 03:34 PM خوش آمدید مهمان گرامی! (ورودعضویت)



محدودیت در تمام کوئری ها


ارسال موضوع  ارسال پاسخ 
  • 1 رای - 2 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
رتبه موضوع:
 
محدودیت در تمام کوئری ها
نویسنده پیام
786ali آفلاین
عضو نیمه حرفه ای
**

ارسال‌ها: 137
تاریخ عضویت: Jul 2011
رتبه: 2
تشکر: 197
80 بار تشکر شده در 42 پست
ارسال: #1
Information محدودیت در تمام کوئری ها
چطور می شود در تمام کوئری ها (query) و یا درخواست هایی که به یک مدل می رسد محدودیت ایجاد نمود ؟
برای مثال چک کردن یک فیلد به صورت اتوماتیک در تمام در خواست هایی که به یک مدل می آید انجام شود و نیاز نباشد در همه کوئری ها در کنترلر آنها را تکرار کنیم .
2012/01/03 10:52 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
saleh آفلاین
Administrator
*******

ارسال‌ها: 989
تاریخ عضویت: Dec 2009
رتبه: 12
تشکر: 399
871 بار تشکر شده در 560 پست
ارسال: #2
RE: محدودیت در تمام کوئری ها
استفاده از beforfind - afterfind در مدل ها یا رفتار کننده ها.
2012/01/04 05:33 AM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
 تشکر شده توسط : 786ali
786ali آفلاین
عضو نیمه حرفه ای
**

ارسال‌ها: 137
تاریخ عضویت: Jul 2011
رتبه: 2
تشکر: 197
80 بار تشکر شده در 42 پست
ارسال: #3
RE: محدودیت در تمام کوئری ها
(2012/01/04 05:33 AM)saleh نوشته است:  استفاده از beforfind - afterfind در مدل ها یا رفتار کننده ها.

امکان دارد یک مثال در این مورد بیان کنید ؟
2012/01/04 10:55 AM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
saleh آفلاین
Administrator
*******

ارسال‌ها: 989
تاریخ عضویت: Dec 2009
رتبه: 12
تشکر: 399
871 بار تشکر شده در 560 پست
ارسال: #4
RE: محدودیت در تمام کوئری ها
شما نیازتون رو بگید تا من مثال درست رو بیان کنم.
2012/01/04 10:14 PM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
786ali آفلاین
عضو نیمه حرفه ای
**

ارسال‌ها: 137
تاریخ عضویت: Jul 2011
رتبه: 2
تشکر: 197
80 بار تشکر شده در 42 پست
ارسال: #5
RE: محدودیت در تمام کوئری ها
برای مثال در یک سیستم وبلاگ می خواهیم پست هایی که گزینه " نمایش درسایت " آنها فعال شده نمایش داده شود و برای جلوگیری از تکرار مجدد بهتر است در مدل کل کوئری ها را فیلتر کنیم .

( در ضمن چون پست ها به صورت های گوناگون فراخوانی می شوند در روش معمول ممکن است اشتباها پست هایی که نباید ، نمایش داده شوند )
2012/01/07 11:54 AM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
saleh آفلاین
Administrator
*******

ارسال‌ها: 989
تاریخ عضویت: Dec 2009
رتبه: 12
تشکر: 399
871 بار تشکر شده در 560 پست
ارسال: #6
RE: محدودیت در تمام کوئری ها
این مثالی که زدید در واقع شرط کوئری هست و ممکنه خیلی موارد محتلفی داشته باشه.

من این مثال رو میزنم. سیستم باید کاربر لاگیم شده رو تشخیص بده و فقط پست های اون کاربر رو نمایش بده.



کد PHP:
<?php
class Post extends AppModel {
    public 
$name 'Post';

    
    public function 
beforeFind($query){
        
        if ( 
$user AuthComponent::user('id')  ) 
          
$query[$this->alias]['conditions']['user_id']= $user;
          
    return 
$query;

    }
    


تو این مثال اگر کاربری لاگین کرده باشه. ای دی اون کاربر رو رو قبل از اجرا شدن در شرط کوئری قرار میده.
2012/01/07 01:20 PM
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
 تشکر شده توسط : 786ali
ارسال موضوع  ارسال پاسخ 


پرش در انجمن: