торт перед вопросом - PullRequest
1 голос
/ 25 мая 2011

Я следую в book.cake и не знаю, нужно ли что-то отправлять в параметры.

function beforeSave() {
if (!empty($this->data['Article']['create_dt']) && !empty($this->data['Article']['modified_dt'])) {
        $this->data['Article']['create_dt'] = $this->dateFormatBeforeSave($this->data['Article']['create_dt']);
        $this->data['Article']['modified_dt'] = $this->dateFormatBeforeSave($this->data['Article']['modified_dt']);
}
return true;
}

Я пытаюсь найти пример, но не нашел.Мне нужно много примеров
кто-нибудь может помочь мне найти большой ресурс спасибо за предложение

Ответы [ 3 ]

6 голосов
/ 25 мая 2011

beforeSave вызывается автоматически Cake перед сохранением данных. В нем вы можете делать все, что хотите, перед каждым сохранением. Обычно это означает изменение $this->data, то есть данных, которые должны быть сохранены.

Методу передается один параметр: массив вида array('validate' => true/false, ('fieldList' => array(...)). Это соответствует двум дополнительным параметрам, которые вы можете указать для save():

$this->Model->save($this->data, false, array('foo', 'bar'));

В этом случае массив будет выглядеть как
array('validate' => false, 'fieldList' => array('foo', 'bar')).

Вы можете принять этот массив, указав аргумент:

public function beforeSave($options) { ... }

$options будет выглядеть, как описано выше. Вы можете использовать эту информацию любым способом.

Если вы не наберете return true из beforeSave, операция сохранения будет полностью отменена.

Вот и все.

1 голос
/ 08 октября 2013

попробуйте использовать созданные и измененные магические поля с типом datetime в табличном торте, чтобы автоматически обработать их

0 голосов
/ 01 июня 2011

Хочу отметить, что beforeSave () следует использовать осторожно, потому что он используется каждый раз, когда данные сохраняются с этой моделью.

если вы забудете, что он используется, вы получите неожиданные результаты. Бывает со мной несколько раз ...;)

...