teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

6

更新

2016/07/29 10:28

投稿

yajin
yajin

スコア75

title CHANGED
File without changes
body CHANGED
@@ -22,7 +22,20 @@
22
22
  - Warning (2): Invalid argument supplied for foreach() [CORE/src/ORM/Marshaller.php, line 289]
23
23
 
24
24
  となりました。
25
+
26
+ 追記
27
+ http://stackoverflow.com/questions/32912941/cakephp-3-x-saving-multiple-entities-newentities
28
+ のサイトより
29
+ 0. echo $this->Form->input($i.'.question',['label' => '質問','placeholder' => '質問文']);
30
+ と変えてみたら、valitation出ました。
31
+ formヘルパーの文法的に
25
32
  ```php
33
+ echo $this->Form->input('0.column_name', /* ... */);
34
+ echo $this->Form->input('1.column_name', /* ... */);
35
+
36
+ ```
37
+ ですね。
38
+ ```php
26
39
  addition5.ctp
27
40
  <?php
28
41
  echo $this->Form->create('Quizs',["class" => "quizform"]);
@@ -56,6 +69,4 @@
56
69
 
57
70
  }
58
71
 
59
- ```
72
+ ```
60
-
61
- 問題が複数あって恐縮ですがまずはEntityの方のBookmarkがいけないのか。デバッグ方法も含めてお知恵をお貸し頂ければと存じます。

5

更新

2016/07/29 10:28

投稿

yajin
yajin

スコア75

title CHANGED
File without changes
body CHANGED
@@ -16,7 +16,12 @@
16
16
  use Cake\ORM\Table;
17
17
  use Cake\Validation\Validator;
18
18
  0. 複数データの挿入のみの問題になりました。
19
+ 0. request->data()の引数に'Quizs'を追記したところ、
20
+ - 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]
21
+ - 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]
22
+ - Warning (2): Invalid argument supplied for foreach() [CORE/src/ORM/Marshaller.php, line 289]
19
23
 
24
+ となりました。
20
25
  ```php
21
26
  addition5.ctp
22
27
  <?php
@@ -39,7 +44,7 @@
39
44
  public function addition5(){
40
45
  $this->ViewBuilder()->layout('hoge');
41
46
  $quizs = TableRegistry::get('Quizs');
42
- $entities = $quizs->newEntities($this->request->data());
47
+ $entities = $quizs->newEntities($this->request->data('Quizs'));//Quizsと追記
43
48
  //var_dump($entities);
44
49
 
45
50
  if($this->request->is('post')){

4

追記

2016/07/29 01:24

投稿

yajin
yajin

スコア75

title CHANGED
File without changes
body CHANGED
@@ -7,6 +7,16 @@
7
7
  0. src\Model\Entity\Quiz.phpにてclass Quiz extends Entity{}と直すと、一つのレコードを挿入するctpファイルのコードの方ではnullのレコードが挿入されてしまう。(valitationは一応効くが、正しい情報を入力しても空レコードになる。)
8
8
  0. atomにてプロジェクト内を検索して、「ookmark」と検索するも、src\Model\Entity\Quiz.phpとsrc\Template\Pages\home.ctpに書いてあるBookmarkしか見当たらない。※これがとにかく気持ち悪い
9
9
  0. 複数レコードの際のフォームは、フォームヘルパーにてname属性を配列にしてあげるも、var_dumpすると、POSTは表示されるも、entitiesの方は入力された情報が見当たらない。
10
+
11
+ 追記
12
+ 0. 別のプロジェクトにbakeコマンドで適当にモデルを作り、そのモデルにあった、以下の名前空間の階層化のコードをQuizsTable.phpに挿入して、bookmarkをquizに変更したら空フィールド現象はなくなりました。
13
+ use App\Model\Entity\Quiz;
14
+ use Cake\ORM\Query;
15
+ use Cake\ORM\RulesChecker;
16
+ use Cake\ORM\Table;
17
+ use Cake\Validation\Validator;
18
+ 0. 複数データの挿入のみの問題になりました。
19
+
10
20
  ```php
11
21
  addition5.ctp
12
22
  <?php

3

修正

2016/07/28 17:22

投稿

yajin
yajin

スコア75

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

2

見やすさを変える

2016/07/28 15:24

投稿

yajin
yajin

スコア75

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

1

修正

2016/07/28 15:20

投稿

yajin
yajin

スコア75

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