Работа с другим форматом данных с помощью laravel

#php #mysql #laravel #laravel-4 #php-carbon

#php #mysql #laravel #laravel-4 #php-carbon

Вопрос:

Я пытаюсь заставить другой формат данных работать в laravel 4. Я хочу, чтобы пользователь мог ввести что-то вроде «31.12.2013» (формат: d.m.Y).

Поэтому я использую эти правила в модели

 public static $rules = array(       
        'birthDate' => 'sometimes|date|date_format:d.m.Y' 
    );
 

Теперь пользователь может ввести дату в желаемом формате, и валидатор принимает формат. Проблема, с которой я сталкиваюсь, заключается в том, что оператор update выполняется следующим образом.

 array(3) {
  ["query"]=>
  string(68) "update `people` set `birthDate` = ?, `updated_at` = ? where `id` = ?"
  ["bindings"]=>
  array(3) {
    [0]=>
    string(10) "30.11.2014"
    [1]=>
    string(19) "2014-06-19 19:39:57"
    [2]=>
    string(2) "22"
  }
  ["time"]=>
  float(0,67)
}
 

Поле даты рождения имеет тип date и поэтому нуждается в другом формате (например, поле «updated_at»).

Должен ли я работать с моим собственным методом setBirthDateAttribute($value)? или есть ли более аккуратная возможность исправить это?

Комментарии:

1. Да, вы можете использовать метод мутатора для установки даты.

2. хм, это кажется мне немного запутанным. если я задам в правилах тип date , laravel уже должен знать, что данное значение должно быть преобразовано в date . Поэтому я думаю, что laravel должен сделать это самостоятельно, о чем вы думаете?

3. Нет, потому что представления дат не стандартизированы. Возможно, вы захотите сохранить его в виде строки, или вы можете использовать компонент database engine с другим стандартным форматом.

4. хорошо, вы правы, тогда собственный метод setAttribute — это решение для использования 🙂 спасибо