Правильно форматируйте дату и время с помощью laravel и carbon

Я пытаюсь добавить дату и время в свою базу данных, но у меня возникают проблемы:

Во-первых: я создаю форму:

<div class="row">
<div class="form-group col-md-6">

    {!! Form::label('roba_spremna','The cargo is ready:') !!}
    {!! Form::text('roba_spremna', null, ['class'=>'form-control']) !!}
</div>
<div class="form-group col-md-6">

    {!! Form::label('auction_end','Auction close at:') !!}
    {!! Form::text('auction_end', null, ['class'=>'form-control']) !!}
</div>
</div>

После этого добавляю bootstrap-datetimepicker (библиотека js):

$( document ).ready(function() {
                $(function () {
                    $('#roba_spremna, #auction_end').datetimepicker();
                });
            });

а в статье модель пишу:

 protected $fillable = [
        'title',
        'body',
        'roba_spremna',
        'auction_end'
    ];

    protected $dates = [
        'roba_spremna',
        'auction_end'
    ];

    public function setRobaSpremnaAttribute($date){
        $this->attributes['roba_spremna']= Carbon::createFromFormat(''m/d/Y h:i a', $date);
    }

Теперь, когда я пытаюсь сохранить дату со временем в своей базе данных, поэтому, когда я отправляю форму, я получаю эту ошибку:

InvalidArgumentException в строке 425 Carbon.php: обнаружены непредвиденные данные. Обнаружены неожиданные данные. Обнаружены неожиданные данные. Конечные данные

введите описание изображения здесь Как я могу решить свою проблему?


person MonkeyBusiness    schedule 17.12.2015    source источник
comment
Carbon::createFromFormat(''m/d/Y h:i a', $date); должно быть Carbon::createFromFormat('m/d/Y h:i a', $date);   -  person Moppo    schedule 17.12.2015
comment
хорошо, это была ошибка здесь, в коде StackOverflow, а не в моем реальном коде ... извините   -  person MonkeyBusiness    schedule 17.12.2015
comment
Я думаю, вы должны показать вам код контроллера, в котором вы обрабатываете форму и передаете данные в модель   -  person Moppo    schedule 17.12.2015
comment
Carbon::createFromFormat(''m/d/Y h:i a', $date); должно быть Carbon::createFromFormat('m/d/Y h:i A', $date); @Moppo   -  person Narendrasingh Sisodia    schedule 17.12.2015
comment
извините, люди, проблема заключалась в том, что я не добавляю функцию setAuctionEndAttribute ... Я удалю этот вопрос   -  person MonkeyBusiness    schedule 17.12.2015
comment
Сохрани его, может у кого нибудь будет проблема. Просто напишите, в чем была проблема и как вы ее решили.   -  person Bojan Kogoj    schedule 17.12.2015


Ответы (1)


Лучший способ решить эту проблему - отладить контроллер или использовать функцию dd (). В любом случае ваша цель - увидеть, как именно выглядит ваше свидание, пока вы находитесь в контроллере.

Зависит от того, вводите ли вы запрос в качестве параметра в функции контроллера или используете фасадный вызов dd, должен выглядеть так:

dd($request->get('roba_spremna'));

или через фасад:

dd(\Request::get('roba_spremna'));

Затем вам нужно сравнить формат даты с вашей маской. В конечном итоге скопируйте дату, полученную от dd (), затем запустите

php artisan tinker

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

person elfif    schedule 17.12.2015