@radio_mus

Как организовать сохранение значений (morphedByMany)?

Здравствуйте, прошу помощи, запутался!
Идея такая: иметь таблицу с дополнительными полями к форме (которые потом можно добавить к разным формам моделей: News, Blog...)

Вопрос в том, как правильно выводить эти поля и сохранять значения?
В форму мы можем отправить и вывести форычем все поля 'fields' => Field::all(), но как заполнить их значениями, относящимися к определенной записи Blog?
Как правильно сохранить значения?

Некоторый код:
Blog.php
class Blog extends Model
{
...
    public function fields()
    {
        return $this->morphToMany(Field::class, 'fieldable');
    }
}


Field.php
class Field extends Model
{
...
    public function blogs()
    {
        return $this->morphedByMany(Blog::class, 'fieldable');
    }
}


BlogController.php
class 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


Единственное, что пока приходит на ум, отправлять в форму и все доп поля и все связанные поля со значениями, потом сравнивать и заполнять. Но должен же быть способ лучше!? :)
  • Вопрос задан
  • 140 просмотров
Решения вопроса 1
В доке laravel'a

Вывод просто foreach $blog->fields as item
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы