Мое решение: в папке webroot я сделал ссылку на BASEROOT (с именем 'baseroot'), а затем создал файл src / View / UrlHelper
class UrlHelper extends CakeUrlHelper{
public function webroot($file){
//code
if (file_exists(\Cake\Core\Configure::read('App.wwwRoot') . $file)) {
$webPath = $this->request->getAttribute('webroot') . $asset[0];
}else{
$webPath = $this->request->getAttribute('webroot').'baseroot'.DS.$asset[0];
}
//more code
}
}
Укажите DefaultValueAttribute , и, если значение совпадает, оно не будет выведено.
У Роуленда есть ответ для простых значений. Для более сложных сценариев вы можете добавить метод с именем public bool ShouldSerializeFoo ()
(для свойства Foo
) - он возвращает false
, он не получит сериализации.
Используйте атрибут XMLIgnore (), чтобы пометить свойство, которое должно быть включено при сериализации / десериализации.