В моей модели
public function setReceptionDate(date $reception_date)
{
$this->reception_date=$reception_date->date('Y-m-d');
}
public function getReceptionDate(): date
{
return $this->Reception_date;
}
В моем контроллере
$machine->setReceptionDate($reception_date);
В моем blade.php
<label for = "date" class = "date-style">
<span id = "dateFecha">Fecha de Recepción</span>
<input type = "date" name = "receptionDate" class = "date-input-style" />
Не знаю где ошибка, помогите
Если вы используете Laravel 6.x или более позднюю версию, вы можете просто применить свойство reception_date
protected $casts = [
'reception_date' => 'datetime:Y-m-d',
];
Нет необходимости в функциях Accessor и Mutator: getReceptionDate
и setReceptionDate
И в контроллере вы можете напрямую назначить допустимый строковый литерал свойству
$receptionDate = "2020-10-01";
$machine->reception_date = $receptionDate;
Документы Laravel: https://laravel.com/docs/master/eloquent-mutators#date-casting
Если я правильно понимаю использование вашего контроллера
public function setReceptionDate(date $reception_date)
{
$this->reception_date=$reception_date->date('Y-m-d');
}
Получает строку из формы. Тем не менее, вы относитесь к нему так, как будто это уже класс даты.
Попробуйте сначала превратить его в класс даты или сохранить напрямую как есть без функции ->date (как вы, кажется, пытаетесь)
Входы типа
date
отправят строку (как и предполагает ошибка).