これが私がやろうとしていることです。私のテーブルsay(Courses)には、同じIDを持つ複数のエントリがあります。
paginateからデータを取得すると、すべてのレコードが表示されます。したがって、ID 5のレコードが3つある場合、レコード番号5が3回表示されます。
今私が欲しいのは、レコードを一度だけ表示することです。
オンラインで検索しましたが、何も見つかりません。
誰かがそのような問題に遭遇し、それに対する解決策を見つけた場合は、私に知らせてください。
ありがとう、
これが私がやろうとしていることです。私のテーブルsay(Courses)には、同じIDを持つ複数のエントリがあります。
paginateからデータを取得すると、すべてのレコードが表示されます。したがって、ID 5のレコードが3つある場合、レコード番号5が3回表示されます。
今私が欲しいのは、レコードを一度だけ表示することです。
オンラインで検索しましたが、何も見つかりません。
誰かがそのような問題に遭遇し、それに対する解決策を見つけた場合は、私に知らせてください。
ありがとう、
私は同様の問題を抱えていたので、あなたの問題に出くわしました。David Z の解決策はうまくいきませんでしたが、 $paginate のグループ変数がうまくいくことがわかりました。
上記のコードサンプルを使用すると、これが機能するはずだと思います。
$paginate = array(
'Courses' => array(
'limit' => 20,
'fields' => array('Courses.id'),
'conditions' => $cond,
'group' => array('Courses.id'),
'order' => array('Courses.id' => 'asc')
)
);
うまくいけば、私のために働いたソリューションにもう少し光を当てるために、私は会社に属するシステムを持っています. 私が持っているシステムについて、ユニークな会社のリストを取得したかったのです。これは私が使用した正確なコードであり、私のために働いた
$this->paginate = array ('fields' => array ('Company.*'),
'order' => array('Company.name' => 'ASC'),
'group' => array('Company.id'));
$this->set('companies', $this->paginate($this->Company->System));
これが役に立ったことを願っています
CakePHP のクックブックを見ると、ページネーションのドキュメントに $paginate メンバーをオーバーライドできることが示されています。舞台裏では、これはモデルの find('all') のパラメーターを渡すのと似ています。必要な値を絞り込むために、distinct キーワードで関心のあるフィールドを明示的に返すようにパラメーターを設定してみてください。
class RecipesController extends AppController {
var $paginate = array(
'fields' => array('Model.field1', 'DISTINCT Model.field2')
);
}
だから、これが私のpaginate変数がどのように見えるかです:
var $paginate = array(
'Courses' => array(
'limit' => 20,
'page' => 1,
'order' => array(
'Courses.id' => 'asc')
),
);
条件変数は次のようになります。
$cond = array("Courses.id LIKE "=>$this->data['id_search'],
"Courses.length LIKE "=>$this->data['length_search'],
"Courses.marks LIKE "=>$this->data['marks']
);
そして、これが私がページネーションと呼んでいる方法です。
$data = $this->paginate('CdmaRfReport',$cond);
やってみた
$paginate = array(
'Courses' => array(
'limit' => 20,
'fields' => array('DISTINCT Courses.id'),
'page' => 1,
'conditions' => $cond,
'group' => array('id'),
'order' => array(
'Courses.id' => 'asc')
)
);
役に立たないようです。
私も試しました
$cond = array("DISTINCT Courses.id "=>$this->data['id_search'],
"Courses.length LIKE "=>$this->data['length_search'],
"Courses.marks LIKE "=>$this->data['marks']
);
このエラーでも、何か問題がある可能性があります。しかし、私はそれを理解することができません。
提案があれば教えてください。