質問編集履歴

6

更新

2016/07/29 10:28

投稿

yajin
yajin

スコア75

test CHANGED
File without changes
test CHANGED
@@ -45,6 +45,32 @@
45
45
 
46
46
 
47
47
  となりました。
48
+
49
+
50
+
51
+ 追記
52
+
53
+ http://stackoverflow.com/questions/32912941/cakephp-3-x-saving-multiple-entities-newentities
54
+
55
+ のサイトより
56
+
57
+ 0. echo $this->Form->input($i.'.question',['label' => '質問','placeholder' => '質問文']);
58
+
59
+ と変えてみたら、valitation出ました。
60
+
61
+ formヘルパーの文法的に
62
+
63
+ ```php
64
+
65
+ echo $this->Form->input('0.column_name', /* ... */);
66
+
67
+ echo $this->Form->input('1.column_name', /* ... */);
68
+
69
+
70
+
71
+ ```
72
+
73
+ ですね。
48
74
 
49
75
  ```php
50
76
 
@@ -115,7 +141,3 @@
115
141
 
116
142
 
117
143
  ```
118
-
119
-
120
-
121
- 問題が複数あって恐縮ですがまずはEntityの方のBookmarkがいけないのか。デバッグ方法も含めてお知恵をお貸し頂ければと存じます。

5

更新

2016/07/29 10:28

投稿

yajin
yajin

スコア75

test CHANGED
File without changes
test CHANGED
@@ -34,7 +34,17 @@
34
34
 
35
35
  0. 複数データの挿入のみの問題になりました。
36
36
 
37
+ 0. request->data()の引数に'Quizs'を追記したところ、
37
38
 
39
+ - Warning (4096): Argument 1 passed to Cake\ORM\Table::newEntities() must be of the type array, null given, called in /var/www/html/cakephp/project_name/src/Controller/QuizsController.php on line 66 and defined [CORE/src/ORM/Table.php, line 2053]
40
+
41
+ - Warning (4096): Argument 1 passed to Cake\ORM\Marshaller::many() must be of the type array, null given, called in /var/www/html/cakephp/project_name/vendor/cakephp/cakephp/src/ORM/Table.php on line 2059 and defined [CORE/src/ORM/Marshaller.php, line 286]
42
+
43
+ - Warning (2): Invalid argument supplied for foreach() [CORE/src/ORM/Marshaller.php, line 289]
44
+
45
+
46
+
47
+ となりました。
38
48
 
39
49
  ```php
40
50
 
@@ -80,7 +90,7 @@
80
90
 
81
91
  $quizs = TableRegistry::get('Quizs');
82
92
 
83
- $entities = $quizs->newEntities($this->request->data());
93
+ $entities = $quizs->newEntities($this->request->data('Quizs'));//Quizsと追記
84
94
 
85
95
  //var_dump($entities);
86
96
 

4

追記

2016/07/29 01:24

投稿

yajin
yajin

スコア75

test CHANGED
File without changes
test CHANGED
@@ -15,6 +15,26 @@
15
15
  0. atomにてプロジェクト内を検索して、「ookmark」と検索するも、src\Model\Entity\Quiz.phpとsrc\Template\Pages\home.ctpに書いてあるBookmarkしか見当たらない。※これがとにかく気持ち悪い
16
16
 
17
17
  0. 複数レコードの際のフォームは、フォームヘルパーにてname属性を配列にしてあげるも、var_dumpすると、POSTは表示されるも、entitiesの方は入力された情報が見当たらない。
18
+
19
+
20
+
21
+ 追記
22
+
23
+ 0. 別のプロジェクトにbakeコマンドで適当にモデルを作り、そのモデルにあった、以下の名前空間の階層化のコードをQuizsTable.phpに挿入して、bookmarkをquizに変更したら空フィールド現象はなくなりました。
24
+
25
+ use App\Model\Entity\Quiz;
26
+
27
+ use Cake\ORM\Query;
28
+
29
+ use Cake\ORM\RulesChecker;
30
+
31
+ use Cake\ORM\Table;
32
+
33
+ use Cake\Validation\Validator;
34
+
35
+ 0. 複数データの挿入のみの問題になりました。
36
+
37
+
18
38
 
19
39
  ```php
20
40
 

3

修正

2016/07/28 17:22

投稿

yajin
yajin

スコア75

test CHANGED
File without changes
test CHANGED
@@ -8,13 +8,13 @@
8
8
 
9
9
 
10
10
 
11
- 0. 番号リストsrc\Model\Entity\Quiz.phpにてclass Bookmark extends Entity{}と定義してるのに1つのレコードの挿入はできる(valitationは働く。情報も挿入される)
11
+ 0. src\Model\Entity\Quiz.phpにてclass Bookmark extends Entity{}と定義してるのに1つのレコードの挿入はできる(valitationは働く。情報も挿入される)
12
12
 
13
- 0. 番号リストsrc\Model\Entity\Quiz.phpにてclass Quiz extends Entity{}と直すと、一つのレコードを挿入するctpファイルのコードの方ではnullのレコードが挿入されてしまう。(valitationは一応効くが、正しい情報を入力しても空レコードになる。)
13
+ 0. src\Model\Entity\Quiz.phpにてclass Quiz extends Entity{}と直すと、一つのレコードを挿入するctpファイルのコードの方ではnullのレコードが挿入されてしまう。(valitationは一応効くが、正しい情報を入力しても空レコードになる。)
14
14
 
15
- 0. 番号リストatomにてプロジェクト内を検索して、「ookmark」と検索するも、src\Model\Entity\Quiz.phpとsrc\Template\Pages\home.ctpに書いてあるBookmarkしか見当たらない。※これがとにかく気持ち悪い
15
+ 0. atomにてプロジェクト内を検索して、「ookmark」と検索するも、src\Model\Entity\Quiz.phpとsrc\Template\Pages\home.ctpに書いてあるBookmarkしか見当たらない。※これがとにかく気持ち悪い
16
16
 
17
- 0. 番号リスト複数レコードの際のフォームは、フォームヘルパーにてname属性を配列にしてあげるも、var_dumpすると、POSTは表示されるも、entitiesの方は入力された情報が見当たらない。
17
+ 0. 複数レコードの際のフォームは、フォームヘルパーにてname属性を配列にしてあげるも、var_dumpすると、POSTは表示されるも、entitiesの方は入力された情報が見当たらない。
18
18
 
19
19
  ```php
20
20
 

2

見やすさを変える

2016/07/28 15:24

投稿

yajin
yajin

スコア75

test CHANGED
File without changes
test CHANGED
@@ -8,15 +8,13 @@
8
8
 
9
9
 
10
10
 
11
+ 0. 番号リストsrc\Model\Entity\Quiz.phpにてclass Bookmark extends Entity{}と定義してるのに1つのレコードの挿入はできる(valitationは働く。情報も挿入される)
11
12
 
13
+ 0. 番号リストsrc\Model\Entity\Quiz.phpにてclass Quiz extends Entity{}と直すと、一つのレコードを挿入するctpファイルのコードの方ではnullのレコードが挿入されてしまう。(valitationは一応効くが、正しい情報を入力しても空レコードになる。)
12
14
 
13
- 1,src\Model\Entity\Quiz.phpにてclass Bookmark extends Entity{}定義してるの1つのレコードの挿入はできる(valitationは働。情報も挿入される)
15
+ 0. 番号リストatomにてプロジェクト内を検索して、「ookmark」と検索するも、src\Model\Entity\Quiz.phpとsrc\Template\Pages\home.ctpに書いてあるBookmarkしか見当たらない。※これがとに気持ち悪い
14
16
 
15
- 2,src\Model\Entity\Quiz.phpにてclass Quiz extends Entity{}と直すと、一つのレコードを挿入するctpファイルのコードの方ではnullのレコードが挿入されてしまう。(valitationは一応効くが、正しい情報を入力しても空レコードになる。)
16
-
17
- 3,atomにてプロジェクト内を検索して、「ookmark」と検索するも、src\Model\Entity\Quiz.phpとsrc\Template\Pages\home.ctpに書いてあるBookmarkしか見当たらない。※これがとにかく気持ち悪い
18
-
19
- 4,複数レコードの際のフォームは、フォームヘルパーにてname属性を配列にしてあげるも、var_dumpすると、POSTは表示されるも、entitiesの方は入力された情報が見当たらない。
17
+ 0. 番号リスト複数レコードの際のフォームは、フォームヘルパーにてname属性を配列にしてあげるも、var_dumpすると、POSTは表示されるも、entitiesの方は入力された情報が見当たらない。
20
18
 
21
19
  ```php
22
20
 

1

修正

2016/07/28 15:20

投稿

yajin
yajin

スコア75

test CHANGED
File without changes
test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- 1,src\Model\Entity\Quiz.phpにてclass Bookmark extends Entity{}と定義してるのに動く(valitationは働く。情報も挿入される)
13
+ 1,src\Model\Entity\Quiz.phpにてclass Bookmark extends Entity{}と定義してるのに1つのレコードの挿入はできる(valitationは働く。情報も挿入される)
14
14
 
15
15
  2,src\Model\Entity\Quiz.phpにてclass Quiz extends Entity{}と直すと、一つのレコードを挿入するctpファイルのコードの方ではnullのレコードが挿入されてしまう。(valitationは一応効くが、正しい情報を入力しても空レコードになる。)
16
16