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