نمایش نتایج 1 تا 4 از 4

نام تاپیک: بررسی کد تابع findall() در فریمورک cakephp

  1. #1
    کاربر دائمی
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    جنوب عشق است
    پست
    1,557

    بررسی کد تابع findall() در فریمورک cakephp

    امروز نیاز داشتم یک تابعی مثل findalll فریمورک cakephp بنویسم.اما نتونستم.
    رفتم سراغ خوده فریمورک که ببینم چجوری داره کوئری رو میسازه
    کدش رو پیدا کردم به این رسیدم

    function findAll($conditions = null, $fields = null, $order = null, $recursive = null) {
    return $conditions;
    }


    یکی به من بگه قضیه چیه این تابع چرا اینجوریه !!!!!!!
    کدش همینه یعنی ؟
    کجا داره کوئری میسازه کجا داره اجرا میکنه و ...

  2. #2
    کاربر دائمی آواتار zoghal
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    همدان
    سن
    41
    پست
    401

    نقل قول: بررسی کد تابع findall() در فریمورک cakephp

    رسما همچین تابعی در کیک وجود خارجی ندارد.
    http://api.cakephp.org/2.3/source-class-Model.html#36-3466


    نمی دونم این تابع رو از کجا بدست آوردید. اما فکر می کنم شما دنبال این هستید. توابع جادویی کیک:
    http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#magic-find-types

  3. #3
    کاربر دائمی آواتار cybercoder
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    root/
    پست
    2,018

    نقل قول: بررسی کد تابع findall() در فریمورک cakephp

    تابع findAll در نسخه های اولیه cake مثل 1.1 استفاده می شد (بالشخصه بسیار استفاده کردم) و به سن cake ی عده ای که خودشون رو خیلی cake باز می دونن و بقیه رو دست پایین، قد نمیده.
    http://book.cakephp.org/1.1/en/model...ving-your-data
    اما این که چجوری بر می گردونه که مشخصه Query String میسازه و بعد Exec می کنه. و با کمی بازی بازی با آرایه ها نتیجه رو به صورت Cleanو Structured بر می گردونه سورس 1.1 رو نگاه کن متوجه میشی.

  4. #4
    کاربر دائمی
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    جنوب عشق است
    پست
    1,557

    نقل قول: بررسی کد تابع findall() در فریمورک cakephp

    ای بابا
    ببخشین من اشتباه نوشتم
    متد find هست

    function find($conditions = null, $fields = array(), $order = null, $recursive = null) {
    if (!is_string($conditions) || (is_string($conditions) && !array_key_exists($conditions, $this->_findMethods))) {
    $type = 'first';
    $query = array_merge(compact('conditions', 'fields', 'order', 'recursive'), array('limit' => 1));
    } else {
    list($type, $query) = array($conditions, $fields);
    }

    $this->findQueryType = $type;
    $this->id = $this->getID();

    $query = array_merge(
    array(
    'conditions' => null, 'fields' => null, 'joins' => array(), 'limit' => null,
    'offset' => null, 'order' => null, 'page' => null, 'group' => null, 'callbacks' => true
    ),
    (array)$query
    );

    if ($type != 'all') {
    if ($this->_findMethods[$type] === true) {
    $query = $this->{'_find' . ucfirst($type)}('before', $query);
    }
    }

    if (!is_numeric($query['page']) || intval($query['page']) < 1) {
    $query['page'] = 1;
    }
    if ($query['page'] > 1 && !empty($query['limit'])) {
    $query['offset'] = ($query['page'] - 1) * $query['limit'];
    }
    if ($query['order'] === null && $this->order !== null) {
    $query['order'] = $this->order;
    }
    $query['order'] = array($query['order']);

    if ($query['callbacks'] === true || $query['callbacks'] === 'before') {
    $return = $this->Behaviors->trigger($this, 'beforeFind', array($query), array(
    'break' => true, 'breakOn' => false, 'modParams' => true
    ));
    $query = (is_array($return)) ? $return : $query;

    if ($return === false) {
    return null;
    }

    $return = $this->beforeFind($query);
    $query = (is_array($return)) ? $return : $query;

    if ($return === false) {
    return null;
    }
    }

    if (!$db =& ConnectionManager::getDataSource($this->useDbConfig)) {
    return false;
    }

    $results = $db->read($this, $query);
    $this->resetAssociations();

    if ($query['callbacks'] === true || $query['callbacks'] === 'after') {
    $results = $this->__filterResults($results);
    }

    $this->findQueryType = null;

    if ($type === 'all') {
    return $results;
    } else {
    if ($this->_findMethods[$type] === true) {
    return $this->{'_find' . ucfirst($type)}('after', $query, $results);
    }
    }
    }


    $options=array('joins' => array(
    array(
    'conditions' => array(
    'Profile.user_id = User.id'
    ),
    'table' => 'profiles',
    'alias' => 'Profile',
    'type' => 'left',
    ),
    ),
    'limit' => '10',
    'offset' => '5',
    );
    $data=$this->find('all',$options');

    من ی برنامه واسه کارام نوشتم تا حدودی جواب گوی نیاز ها هست
    که اسم جدول رو بهش میدی
    یک فایل که یک کلاس داره با متد های Select,insert,update و...
    رو داره طبق همون جدولی که بهش دادیم.
    یک کلاس دیتابیس هم داریم که کلاس اولی متد هارو میده به کلاس دیتابیس و اجرا میکنه
    من فقط صدا میزنم متد هارو
    مثلا

    CONTENT_class::content_list_Insert($_POST['title'], $_POST['post_editor'], $_POST['cat_Name'], time(), substr( $_POST['tags'],-strlen($_POST['tags'])+1,strlen($_POST['tags'])))

    اما بعضی وقتا نیاز به یک کوئری دارم که باید مستقیم خودم بدم به دیتابیس چراکه متدی ندارم به مشخصات رو بدم و کوئری رو بسازه ! یعنی داینامیک باشه

    $this->MessageArshive=Database::Execute_Query("SELECT m1.id, m1.title, m1.timestamp, count( m2.id ) AS reps, users.id AS userid, users.username
    FROM messages AS m1, messages AS m2, users
    WHERE (
    (
    m1.user1 =:myid
    AND m1.user1read = 'yes'
    AND users.id = m1.user1
    )
    OR (
    m1.user2 =:myid
    AND m1.user2read = 'yes'
    AND users.id = m1.user1
    )
    )
    AND m1.id2 = '1'
    AND m2.id = m1.id
    GROUP BY m1.id
    ORDER BY m1.id DESC",array (':myid' => $_SESSION['userID']));

    نیاز به یک تابع مثل همین find دارم که من مشخصات رو بدم و خودش کوئری رو بسازه ! اما چجوریش رو موندم ! که به چه شکل بنویسم که انواع کوئری رو بسازی با توجه به پارامتر ها
    رفتم سراغ کیک اما چیزی نفهمیدم ! این الان داره چجوری کوئری رو میسازه !؟

تاپیک های مشابه

  1. مشکل در بررسی تساوی رشته(درون تابع)
    نوشته شده توسط mohammad6969 در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 1
    آخرین پست: دوشنبه 16 مرداد 1391, 02:17 صبح
  2. سوال: بررسی isset درون تابع یا متد
    نوشته شده توسط Metal Gear Solid در بخش PHP
    پاسخ: 0
    آخرین پست: چهارشنبه 19 مرداد 1390, 14:41 عصر
  3. سوال: بررسی تابع Edit / مشکل آرایه
    نوشته شده توسط majid.nasirinejad در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 2
    آخرین پست: دوشنبه 25 مرداد 1389, 02:43 صبح
  4. پاسخ: 1
    آخرین پست: شنبه 03 آذر 1386, 13:10 عصر
  5. بررسی Multi Statements در SQL SERVER همراه با تشریح تابع Split
    نوشته شده توسط MohammadSoft در بخش SQL Server
    پاسخ: 0
    آخرین پست: چهارشنبه 23 آبان 1386, 00:14 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •