Есть несколько способов, вы можете идти об этом:
1) Сделать по умолчанию на какой-то даты или даты и функции в вашей настойчивости слоя (как сделать его по умолчанию now()
или еще что-нибудь в вашей базе данных).
2) В создании, обновлении, патче и т. Д. Вашего ресурса проверьте, было ли поле передано. Если нет, создайте стандартную метку времени для ввода. Вы также можете сделать это дальше в своих слоях зависимостей, например, в вашем сервисе, картографе или другой зависимости от ресурсов, где когда-либо это имеет смысл.
3) Создайте что-нибудь вроде фильтра NullToDefaultDate. Он будет запущен в вашем нулевом поле и изменит значение null до даты по умолчанию, которую вы предоставляете, прежде чем он попадет в ваш код apigility. Убедитесь, что вы либо получили отфильтрованные значения из введенного InputFilter через $this->getInputFilter()->getValues();
или аналогичные, либо вы установили use_raw_data = false
в свой module.config.php
в разделе zf-content-validation
.
'zf-content-validation' => array( 'YourNamespace\\V1\\Rest\\YourServiceName\\Controller' => array( 'input_filter' => 'YourNamespace\\V1\\Rest\\YourServiceName\\Validator', 'use_raw_data' => false, 'allows_only_fields_in_filter' => true, ) )
Если положить в только «use_raw_data» => ложных, вы получите отфильтрованные значения для полей, которые вы определили в Apigility, но вы также получите дополнительный нефильтрованный «мусор» поля что вы вообще не сказали Apigility. Если вы этого не хотите, вы можете включить allows_only_fields_in_filter
, который даст вам только те поля, которые вы определили, но теперь ваш API возвращает ошибку ApiProblem, когда поле, которое не было в списке, передается. Используя $data = $this->getInputFilter()->getValues()
в ваших методах вернет вам только поля, которые вы определили, и он также даст вам отфильтрованные значения.
Для второй части вашего вопроса вы хотите использовать валидатор Zend \ Validator \ Date и добавить опцию формата «Y-m-d H: i: s».
Не забудьте нажать кнопку Добавить вариант, прежде чем сохранить или он не будет держать его.
Надеюсь, это поможет.
Я не вижу никаких сервисов, файлы карт в боковом модуле. Я не вижу, что этот фильтр NullToDefaultDate также недоступен. вы можете быть краткими на нем – Gowri
@ Фильтр Gowri NullToDefaultDate будет фильтром, который вам нужно создать. Служба, mapper и т. Д. Предназначены для того, чтобы стоять вместо любых зависимостей, которые вы ввели в свой ресурс, чтобы ваш API выполнял то, что ему нужно. Если вы выполняете всю работу в методе в ресурсе, тогда это произойдет. –
Я создал фильтр NullToDefaultDate, который исправил мою проблему. У меня много вопросов о apiglity. где я могу установить быструю помощь. – Gowri