質問編集履歴
2
キャプチャを追加しまいした。
title
CHANGED
File without changes
|
body
CHANGED
@@ -29,6 +29,8 @@
|
|
29
29
|
・既読ステータス検索(selectbox)
|
30
30
|
上記、4つです。
|
31
31
|
|
32
|
+

|
33
|
+
|
32
34
|
```
|
33
35
|
$informations = $this->Informations->find()
|
34
36
|
->contain(['Cases', 'Categories', 'Users'])
|
1
依頼内容が分かりにくいと指摘を頂いたので修正いたしました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Cakephp3
|
1
|
+
Cakephp3 find エラー
|
body
CHANGED
@@ -1,5 +1,9 @@
|
|
1
|
-
Cakephp3 クエリビルダで困ってます
|
1
|
+
Cakephp3 クエリビルダで困ってます。
|
2
2
|
|
3
|
+
informationsテーブルにはcase・categoryの2つのテーブルが「多 対 1」の関係でリレーション
|
4
|
+
informations_usersテーブルでは「多 対 多」でリレーションしています。
|
5
|
+
|
6
|
+
```
|
3
7
|
CREATE TABLE `informations` (
|
4
8
|
`id` int(11) NOT NULL,
|
5
9
|
`title` varchar(255) NOT NULL COMMENT '件名',
|
@@ -16,8 +20,7 @@
|
|
16
20
|
`read_flag` varchar(255) NOT NULL COMMENT '既読ステータス'
|
17
21
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
|
18
22
|
|
19
|
-
informationsテーブルにはcase・categoryの2つのテーブルが「多 対 1」の関係でリレーション
|
20
|
-
|
23
|
+
```
|
21
24
|
|
22
25
|
実装したい検索フィルターは、
|
23
26
|
・title検索(inputbox)
|
@@ -26,5 +29,25 @@
|
|
26
29
|
・既読ステータス検索(selectbox)
|
27
30
|
上記、4つです。
|
28
31
|
|
32
|
+
```
|
33
|
+
$informations = $this->Informations->find()
|
34
|
+
->contain(['Cases', 'Categories', 'Users'])
|
35
|
+
->where([
|
36
|
+
'Informations.title like' => $this->request->data('title'),
|
37
|
+
'Informations.projectcase_id' => $this->request->data('case_id'),
|
38
|
+
'Informations.projectcase_id' => $this->request->data('category_id'),
|
39
|
+
])
|
40
|
+
->matching('Users', function($q){
|
41
|
+
$person_id = $this->request->session()->read('Auth.User.id');
|
42
|
+
$data = $this->request->data('users')[0]['_read_flag'];
|
43
|
+
return $q
|
44
|
+
->where([
|
45
|
+
'InformationsUsers.user_id' => $person_id,
|
46
|
+
'InformationsUsers.read_flag' => $data,
|
47
|
+
]);
|
48
|
+
});
|
49
|
+
```
|
50
|
+
上記コードではエラーが発生してしまいました。
|
51
|
+
|
29
52
|
if文ですべてのパターンを書かない方法を教えてください。
|
30
53
|
よろしくお願い致します。
|