cakphp 3 перед сохранением доступа к измененным данным объекта

Я пытаюсь получить доступ к представленным данным внутри метода beforeSave в классе моей таблицы, но все, что я получаю, — это данные, сохраненные в базе данных.

public function beforeSave($event,$entity,$options)
{
    // submitted data is ABC
    // the value DEF is currently in the database
    debug($entity->get('tag_string')); // DEF
    debug($entity->tag_string); // DEF
    debug($entity['tag_string']); // DEF
    debug($entity); // the tag_string property is ABC (submitted value)
    if($entity->tag_string)
    {
        $entity->tags=$this->buildTags($entity->tag_string);
    }
}

Вопрос в том, как я могу получить доступ к представленным данным внутри метода beforeFilter?


person Boni Daniel    schedule 01.08.2017    source источник


Ответы (1)


Вопрос в том, как я могу получить доступ к представленным данным внутри метода beforeFilter?

Если вы подразумеваете под "отправленными данными" данные запроса, вы не можете. На данный момент он был преобразован маршалером в сущность.

И прежде чем изобретать велосипед для тегов, попробуйте этот плагин https://github.com/UseMuffin/Tags< /а>

person floriank    schedule 01.08.2017
comment
вопрос касается метода beforeSave. Я действительно не знаю, как это должно работать, но я уверен, что внутри метода Table::beforeSave() вы можете получить доступ к отправленным данным. - person Lucian Vasile; 01.08.2017
comment
В поваренной книге мало говорится о доступе к данным, но вы можете увидеть отправленные данные в переменной $_POST, но это не обычный способ торта. - person Lucian Vasile; 01.08.2017
comment
Я прекрасно понимаю, что он пытается получить доступ к данным там. Что неправильно в контексте архитектуры. Ему нужно изменить свой подход, но поскольку он не дает больше информации... - person floriank; 01.08.2017