Неважно, я гигантский идиот. У меня было две копии модели. Я изменил одну из моделей, чтобы включить константы CREATED_AT / UPDATED_AT, но в моем контроллере я вызывал другую модель. Я ценю время, которое люди потратили, чтобы ответить на это. Оставит вопрос в случае, если другие столкнутся с той же проблемой.
В соответствии с документацией Laravel 5.8 можно настроить имена столбцов, используемых для хранения отметок времени в таблице:
Если вам нужно настроить имена столбцов, используемых для хранения меток времени, вы можете установить константы CREATED_AT и UPDATED_AT в вашей модели.
Вот пример, который они дают:
class Flight extends Model
{
const CREATED_AT = 'creation_date';
const UPDATED_AT = 'last_update';
}
Я пытаюсь заставить это работать в моем приложении (которое является Lumen, если это имеет значение), и это не работает. Вот моя модель:
namespace App;
use Illuminate\Database\Eloquent\Model;
class ExternalUsers extends Model
{
protected $table = 'ExternalUsers';
protected $primaryKey = 'username';
public $incrementing = false;
protected $keyType = 'string';
const CREATED_AT = 'createdAt';
const UPDATED_AT = 'updatedAt';
}
Всякий раз, когда я пытаюсь обновить существующую строку в таблице ExternalUsers, я получаю это сообщение об ошибке в журнале:
PDOException: SQLSTATE [42S22]: столбец не найден: 1054 столбец неизвестен
'ExternalUsers.updated_at' в 'списке полей'
Я что-то не так делаю или документация неверна?