Попробуй это.Намного меньше печатать.В вашем контроллере сохранение данных в вашей базе данных так же просто, как:
public function add() {
$data = "test";
$this->Myaccount->save($data);
// $this->set sends controller variables to the view
$this->set("last", $this->Myaccount->getLastInsertId());
}
Вы можете циклически перебирать массив данных для сохранения с помощью foreach
, возвращая insertId
после каждого, или вы можете использоватьМетод торта saveAll()
.
Myaccount - это объект Model, связанный с вашим контроллером.Соглашение об именах Cake требует, чтобы таблица с именем «myaccounts» имела класс модели с именем «Myaccount» и контроллер с именем «Myaccounts_Controller».Файлы представлений будут находиться в / app / views / myaccounts / ... и будут именоваться в соответствии с методами вашего контроллера.Итак, если у вас есть метод add () ... в вашем контроллере, ваш вид будет /app/Views/Myaccounts/add.ctp.
Метод save () создает оператор INSERT
.Если данные, которые вы хотите сохранить, находятся в $this->data
, вы можете пропустить передачу аргумента в;это сохранит $ this-> data по умолчанию.save()
даже автоматически определяет, генерировать ли оператор UPDATE
или INSERT
на основании наличия id
в ваших данных.
Как правило, если вы используете необработанные SQL-запросы в любой точке Cake, вы, вероятно, делаете это неправильно.Мне еще предстояло столкнуться с таким чудовищно сложным запросом, что ORM Cake не смог его смоделировать.
http://book.cakephp.org/2.0/en/models/saving-your-data.html
http://book.cakephp.org/2.0/en/models/additional-methods-and-properties.html?highlight=getlastinsertid
HTH:)