Здравствуйте, прошу помощи, запутался!
Идея такая: иметь таблицу с дополнительными полями к форме (которые потом можно добавить к разным формам моделей: News, Blog...)
Вопрос в том, как правильно выводить эти поля и сохранять значения?
В форму мы можем отправить и вывести форычем все поля
'fields' => Field::all()
, но как заполнить их значениями, относящимися к определенной записи Blog?
Как правильно сохранить значения?
Некоторый код:
Blog.phpclass Blog extends Model
{
...
public function fields()
{
return $this->morphToMany(Field::class, 'fieldable');
}
}
Field.phpclass Field extends Model
{
...
public function blogs()
{
return $this->morphedByMany(Blog::class, 'fieldable');
}
}
BlogController.phpclass BlogController extends Controller
{
...
public function edit(Blog $blog)
{
$blog= Blog ::find($id);
return view('blog::blog.form', [
'blog' => $blog,
'fields' => Field::all()
]);
}
...
}
form.blade.php@if($fields->count())
@foreach ($fields as $field)
//выводим все доп. поля (type="text") c name="$field->slug"
<div class="form-group">
{{ Form::Text($field->slug) }}
</div>
@endforeach
@endif
Единственное, что пока приходит на ум, отправлять в форму и все доп поля и все связанные поля со значениями, потом сравнивать и заполнять. Но должен же быть способ лучше!? :)