0

この問題は私の頭を悩ませ始めました! CakePHP を使用して、サイトの基本的な請求書システムを構築しようとしています。

ただし、ほとんどすべてのデータを問題なく保存できます。配列である「workdes」と「price」の 2 つのフィールドを保存したい場合、データを保存しようとすると、配列のエラーが発生します。ストリングに!

私のコードは次のとおりです。

        $test = $this->request->data; 
        foreach($test as $test2 => $tets3) {

            $this->Invoicedata->create();

            $InvoiceGroupData = array(
              'Invoicedata' => array(
                'workdes' => $this->request->data['workdes'],
                'price' => $this->request->data['price']
              )
            );
            //debug($InvoiceGroupData); die();

            $this->Invoicedata->saveMany($InvoiceGroupData);
        }

これは $this->request->data の中身です:

'workdes' => array(
    (int) 0 => 'dfgdfg',
    (int) 1 => 'sswd'
),
'price' => array(
    (int) 0 => '500',
    (int) 1 => '100'
)

これは単なるテスト データです。入力は 1 つまたは 5 つです。それで、私は何を間違っていますか?SaveMany の使用は、配列をデータベースに保存することだと思いました。

保存しようとしているテーブル/モデル名は Call Invoicedata で、その中の 2 つのテーブルは「workdes」と「price」です。

私が質問に入れておらず、必要なものが他にある場合は、お尋ねください!

助けてください....

どうもありがとう

グレン。

アップデート ::

これらは私が試したコードの 2 つのセクションであり、まだ配列から文字列への問題が発生しています!!

コード試行 1:

        $WorkHolder = $this->request->data['workdes'];
        $PriceHolder = $this->request->data['price'];

        $MyData = array(
                      array('Invoicedata' => array('workdes' => $WorkHolder)),
                      array('Invoicedata' => array('price' => $PriceHolder)),
            );
        foreach($MyData as $test2 => $test3) {

            $this->Invoicedata->create();



            //debug($test3);

            $this->Invoicedata->saveMany($test3);
        } 

コード試行 2:

            $WorkHolder = $this->request->data['workdes'];
            $PriceHolder = $this->request->data['price'];

            $MyData = array(
                      array('Invoicedata' => array('workdes' => $WorkHolder)),
                      array('Invoicedata' => array('price' => $PriceHolder)),
            );

            //debug($MyData); die();

            $this->Invoicedata->saveMany($MyData);

1 つは foreach ループで、もう 1 つはループなしで、Code try 2 は私が最初に試したもので、今は私のコードは code try 1 のように見えます。だから、私は何を間違っているのですか?

4

1 に答える 1