В моей базе данных у меня есть таблица form_fields
с такой структурой:Laravel - динамическая Eloquent модель в зависимости от значения столбца
id | form_id | title | type
1 | 1 | Subject | text
2 | 1 | Enquiry | textarea
3 | 1 | Logo | file
И я Form
и FormField
модели, с такими отношениями с Form
:
public function fields()
{
return $this->hasMany('App\Modules\Forms\Models\FormField', 'form_id', 'id');
}
Теперь можно изменить класс, который используется на основе поля type
? Так что, если бы у меня были TextFormField
, TextareaFormField
и FileFormField
, все расширяющие основание FormField
Модель, можно ли получить Laravel
, чтобы использовать их? Или мне нужно сделать это вручную, чтобы получить поля, прокрутить их и создать новые экземпляры на основе типа? Кажется, что это не сложно, но это кажется пустой тратой ресурсов, как будто у меня есть 20 полей, 20 FormField
экземпляров будут созданы, а затем я вручную создам еще 20?
Спасибо!
не было бы easyer переопределить метод GET для чего-то модели, как (psuedoco de) function get() {return SomeClassname :: where (type, classId)} -> get(); –