2015-12-06 3 views
1

Я использую cakephp 2.6.7.Почему saveField() не сохраняет запись в CakePHP 2.x?

В модели/ResellerAccount:

<?php 

class ResellerAccount extends AppModel { 

    var $name = "resellerAccounts";   
} 

?> 

Мое имя таблицы reseller_accounts.

в контроллере:

function moneySentToreseller($id = null) { 
    if ($id) { 
     $this->loadModel('ResellerAccount'); 

     $this->ResellerAccount->id = $id; 
     $this->ResellerAccount->saveField("ResellerAccount.status", "sent"); 
     $msg = ' 
      <div class="alert alert-success"> 
       <button type="button" class="close" data-dismiss="alert">&times;</button> 
       <strong> Money send to this reseller succeesfully </strong> 
      </div>'; 
     $this->Session->setFlash($msg); 
    } 
    return $this->redirect($this->referer()); 
} 

Но поле не обновляется. Что происходит в моем коде?

+0

Я заметил, что ты задаешь много вопросов на торте, вы действительно должны потратить некоторое время и прочитать [docs] (http://book.cakephp.org/2.0/en/ посаживания started.html # получение стартером). – skywalker

ответ

2

В соответствии с documentation:

При использовании этого метода, $ FIELDNAME должен содержать только имя поля, а не имя модели и поля.

Попробуйте сохранить следующим образом:

$this->ResellerAccount->saveField("status", "sent"); 

Тщательное также с именем модели:

var $name = "resellerAccounts";   

должен быть

public $name = "ResellerAccount"; 
+0

Боковое примечание: я настоятельно рекомендую НЕ использовать saveField больше. Это функция, которая прекращена в 3.x, поэтому было бы разумнее придерживаться save() для лучшей совместимости с обновлением. См. Https://github.com/dereuromark/cakephp-upgrade/wiki/Tips-Upgrading-to-CakePHP-2.x-3.x#modelsavefield – mark

+0

Полезно знать! Благодаря! –