Проблема
Я не могу заставить Laravel игнорировать поля, которые не существуют в базе данных, когда они присутствуют в методе Eloquent create
или при заполнении базы данных. В приведенном ниже примере поле «день» не существует в таблице событий. Однако мне нужно, чтобы он присутствовал в массиве, чтобы я мог использовать его в EventObserver.php, чтобы создать $ event-> day одновременно с созданием $ event. Я понимаю, что могу создать Day
на собственной фабрике, я просто хочу знать, возможно ли это или даже целесообразно.
Ошибка
Столбец не найден: 1054 Неизвестный столбец «день» в «списке полей»
Мой код
Я пытаюсь присоединить метод Observer к моей модели Event, которая слушает метод created
, чтобы я мог создать новый объект для каждого отношения. В моем EventObserver у меня есть следующее:
public function created(Event $event)
{
//get all attributes
$data = $event->getAttributes();
# fill any related models
$event->day->fill($data['day']);
# save event
$event->push();
}
На моей фабрике событий есть это;
//EventFactory.php
$factory->define(App\Event::class, function (Faker $faker) {
return [
"name" => "A Test Event",
"description" => $faker->paragraphs(3, true),
"event_start_date" => today(),
"event_opening_date" => today(),
"event_closing_date" => tomorrow(),
"user_id" => 1,
"banner_id" => 1,
"gallery_id" => 1,
"related_event_id" => 1,
"status" => "published",
"purchase_limit" => 1000,
"limit_remaining" => 1000,
"delivery_method" => "collection",
"merchandise_delivery_method" => "collection",
"day" => [
"event_id" => 1,
"name" => "Created with observer",
"date" => today(),
"ticket_limit" => 1000,
"limit_remaining" => 1000
]
];
});
Краткое описание
Как я могу заставить Laravel игнорировать свойство day: []
при создании события, чтобы я все еще мог использовать его в Observer?