0

同じテーブルに複数の挿入で user_id を挿入するための「cakephp のような」別の方法があるかどうか疑問に思っていました。私がすることの例:

$user_id = $this->Auth->user('id');
if ($this->request->is('post')) {
        foreach ($this->request->data['Post'] as $key => $value) {
            if (is_int($key)) {
                $this->request->data['Post'][$key]['user_id'] = $user_id;
            }
            unset($key);
            unset($value);
        }
        debug($this->data['Post']);
        die();
        $this->Post->saveAll($this->data['Post']);
    }

セキュリティ上の理由から、入力隠し値 user_id は使用しません。ご協力いただきありがとうございます !

4

2 に答える 2

0

記憶が正しければ、データは次のようになり、ユーザー モデルで saveAll を呼び出す必要があります。

Array
(
    [User] => Array
        (
            [id] => {you_user_id}
        )
    [Post] => Array
        (
            [0] => Array
                (
                    [field] => blah
                )
            [1] => Array
                (
                    [field] => blah
                )
        )
)

言い換えると:

$this->request->data['User'] = array('id' => $this->Auth->user('id'));
$this->Post->User->saveAll($this->request->data);
于 2012-05-24T22:33:45.883 に答える
0

次のようなことを試してください:

$result = Set::insert($this->request->data, 'Post.{n}.user_id', array('user_id' => $user_id));
于 2012-05-24T22:37:41.020 に答える