2011年02月04日

cakephp virtualfield で order できない

お願いします♪いいねとかつぶやいたりして下さい
 
cakephpのバグか・・・。
で、結局できないので、以下で解決。

$this->User = Classregistry::init('User');
$this->User->bindModel(array('hasOne' => array('Girl')));		
$this->User->bindModel(array('hasMany' => array('Rate')));		


$fields = array(
        'conditions' => array('Girl.hasphoto' => 1 , 'User.agecheck' => 1),
        
        'order' => array('User.modified desc'),
        'contain' => array(
            'Girl' => array(
                        'fields' => array('user_id','price','show')
                        ),
            'Attachment' => array(
                'conditions' => array('alternative' => 'girlphoto'),
                'fields' => array(
                            'id',
                            'basename'
                        ),
                        'order' => 'id desc',
                        'limit' => 1
            )
        ),
        'joins' => array(
            array('type' => 'left', 'alias' => 'Rate', 'table' => 'ageha_rates',
            'conditions' => 'User.id = Rate.user_id')
        ),
        'group' => array('User.id'),//メインモデルの モデル名.id これが重要。ここでまとめないと、一つのテストに対して同じユーザーが何度も表示される。
    );


$this->User->virtualFields = array('vfield_rate_sum' => 'sum(Rate.rate)'); // SQL 発行前にバーチャルフィールド設定  

$res = $this->User->find('all',$fields);
$res = Set::sort($res,'/User/vfield_rate_sum','desc'); 
$res = array_slice($res, 0, 20);

pr($res);


全員のポイントを取得して、それで順位別に並び変え。
いらん配列をカット。
関連するタグ: PHP cakephp MYSQL
あなたにとって有用な記事でしたか?是非ブックマークしておくことをおすすめします。
 




ライブラリを配布しちゃったり
webデザイン
Fireworks
HTMLコーディング
CSS
Dreamweaver
携帯サイト
webプログラム
PHP
正規表現
cakephp
MYSQL
javascript
webマーケティング
adwords
analytics
windows7
ショートカットキー
おすすめ情報
サイト
facebook
ライブラリ
配布
アプリ
iphone
ipad
サーバー
さくらサーバー
全ての記事を読む




トップ - 最新の記事一覧 - お問い合わせ