Упаковка данных вручную для сохранения в CakePHP () - PullRequest
2 голосов
/ 03 октября 2011

Я пытаюсь упаковать некоторые данные для функции save () в cakephp.Я новичок в PHP, поэтому я не понимаю, как на самом деле написать в коде следующее:

Ответы [ 2 ]

8 голосов
/ 03 октября 2011

Чтобы ответить на ваш вопрос, вы можете создать необходимую структуру массива и сохранить ее, выполнив следующие действия:

<?php
$data = array(
    'ModelName' => array(
        'fieldname1' => 'value',
        'fieldname2' => 'value'
    )
);
$this->ModelName->save($data);
?>

Обратите внимание: На основании написанного вамивыше в ваших комментариях похоже, что вы не соблюдаете соглашения CakePHP.Это можно сделать таким образом, но вы сэкономите много времени и усилий, если решите придерживаться значений по умолчанию для CakePHP, и делать это по-своему, только если у вас есть для этого веские основания.

Следует запомнить пару вещей:

  1. Имена моделей должны быть единственными.Это означает, что ваша модель должна называться Follower, а не Followers.
  2. Первичный ключ модели в базе данных должен называться просто id, а не followers_id и должен быть установлен как PRIMARY KEY и AUTO_INCREMENT в вашембаза данных.

Если вы решите не следовать соглашениям, вы, вероятно, обнаружите, что ломаете голову, удивляясь, почему что-то не работает, на каждом шагу.Попробуйте ознакомиться с документацией CakePHP для получения более подробной информации.

3 голосов
/ 03 октября 2011

Я думаю, вам нужно сделать, как показано ниже:

$this->Followers->create();
$this->data['Followers']['user_id'] = $user_id;

$this->data['Followers']['follower_id'] = $follower_id; // If it is primary and auto increment than you don't need this line.

$this->Followers->save($this->data)
...