У меня есть базовая модель BaseNote
и две унаследованные от нее: ReferenceNote
и TaskNote
.TaskNote
имеет дополнительный атрибут start_date
.ReferenceNote
имеет атрибут text
.В запросе у меня есть type
и мой код создания новой заметки:
$noteType = self::getNoteType($request->get('type'));
$note = $noteType::create($request->all());
Этот код сохраняет только BaseNote
атрибуты.Можно ли заставить этот код работать без двух фабричных методов и вручную назначать атрибуты?Может ли Laravel получить атрибуты из запроса и автоматически назначить их модели?
ОБНОВЛЕНИЕ:
static function getNoteType($type)
{
switch ($type) {
case self::REFERENCE_NOTE:
return 'App\models\notes\ReferenceNote';
break;
case self::TASK_NOTE:
return 'App\models\notes\TaskNote';
break;
default:
return 'App\models\notes\ReferenceNote';
}
}
В ReferenceNote
и TaskNote
моделях у меня $guarded = []
.
У меня есть одна таблица notes
, которая содержит все столбцы (и ReferenceNote
и TaskNote
).