回答編集履歴
2
containで無駄にReserveを取得していたのを修正
answer
CHANGED
@@ -1,14 +1,17 @@
|
|
1
1
|
「hasMany先のテーブルに条件を指定してもメインテーブルの取得件数は変わらない、
|
2
2
|
なので結合後にhasMany先のテーブルの条件で絞りたい」ということでいいですかね?
|
3
3
|
|
4
|
-
|
4
|
+
JOINの後、WHEREで絞込を行います。
|
5
|
+
ReserveのデータはJOINで取得しているのでContainは空を指定して下さい。
|
6
|
+
代わりにfieldsで欲しいカラムを指定します。
|
5
7
|
```PHP
|
6
8
|
// コントローラー
|
7
9
|
$condition = array( 'limit' => 20
|
8
|
-
|
10
|
+
, 'order' => array('Customer.id DESC')
|
9
|
-
|
11
|
+
, 'contain' => array()
|
12
|
+
, 'fields' => array('Customer.id', 'Reserve.id')
|
10
|
-
|
13
|
+
, 'conditions' => array('Reserve.start >= ?' => date('Y-m-d H:i:s'))
|
11
|
-
|
14
|
+
, 'joins' => array(array( 'table' => 'reserves'
|
12
15
|
, 'alias' => 'Reserve'
|
13
16
|
, 'type' => 'LEFT'
|
14
17
|
, 'conditions' => array('Customer.id = Reserve.customer_id'))));
|
1
推敲
answer
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
「hasMany先のテーブルに条件を指定してもメインテーブルの取得件数は変わらない、
|
2
|
-
なので結合後に
|
2
|
+
なので結合後にhasMany先のテーブルの条件で絞りたい」ということでいいですかね?
|
3
3
|
|
4
4
|
こんなのでどうでしょう?
|
5
5
|
```PHP
|