Вставка значения даты в поле даты с помощью Laravel - PullRequest
0 голосов
/ 13 мая 2018

На данный момент у меня есть поле даты в форме, в которое я хотел бы добавить текущее значение текущей редактируемой записи.Ни одна запись не содержит этого поля даты в моей базе данных MySQL, но по какой-то причине значение записи фактически не будет загружаться во входные данные поля, однако оно загружается в часть «значение» поля ввода.

На данный момент вот код моего поля:

<input type="date" name="date" id="date" class="form-control" style="width: 100%; display: inline;" onchange="invoicedue(event);" required value="{{$shipment->date}}">

А вот вывод кода:

<input name="date" id="date" class="form-control" style="width: 100%; display: inline;" onchange="invoicedue(event);" required="" value="2018-05-10 00:00:00" type="date">

Но вот как это выглядит в моем браузере:

enter image description here

Но в моей таблице базы данных MySQL поле (которое является полем даты) имеет следующий формат: 2018-05-12

Ответы [ 3 ]

0 голосов
/ 13 мая 2018

html-тип элемента ввода date будет искать значение в формате YYYY-MM-DD, поэтому вам придется изменить формат значения.

Попробуйте что-то вроде этого:

<input 
    name="date" 
    id="date" 
    class="form-control" 
    style="width: 100%; display: inline;" 
    onchange="invoicedue(event);" 
    required=""
    value="{{ $shipment->date->format('Y-m-d') }}" 
    type="date">


https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date
0 голосов
/ 13 мая 2018

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

Тогда просто отформатируйте с Carbon

$formattedDate = Carbon::parse($request->date)->format('Y-m-s');

Теперь у вас есть дата в формате 2018-05-13, которая является правильным форматом для sql

Вы должны прочитать документацию Carbon, она может сделать некоторые замечательные вещи.

Проверьте это здесь https://carbon.nesbot.com/docs/

0 голосов
/ 13 мая 2018

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

Тогда вы можете сделать что-то вроде этого:

class Shipment extends Model {

    protected $dates = ['date'];
}

Тогда вы можете просто написать

<input type="date" name="date" id="date" class="form-control" style="width: 100%; display: inline;" onchange="invoicedue(event);" required value="{{$shipment->date->format('m/d/Y')}}">

Если вы не хотите использовать мутатор даты Laravels, вы можете использовать свой собственный что-то вроде этого:

class Shipment extends Model
{
    /**
     * Set the user's first name.
     *
     * @param  string  $value
     * @return void
     */
    public function setDateAttribute($value)
    {
        $this->attributes['date'] = Carbon::parse($value)->format('m/d/Y');
    }
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...