Как сохранить каждое поле в поле повторителя в качестве модели - PullRequest
0 голосов
/ 31 мая 2019

Есть 2 модели: Form и Prog.

Form может иметь множество уникальных Progs. Это не как фильмы и жанры, это как пользователь и его сообщения.

Существует таблица для Forms, для Progs и таблица перекрестных ссылок forms_progs (в ней 2 столбца - form_id и prog_id).

Я добавил поле повторителя (Progs) к форме модели Form. Если у меня есть, например, 3 Progs, как я могу сначала создать их модели, а затем связать их идентификаторы с идентификатором Form?

1 Ответ

0 голосов
/ 31 мая 2019

Это своего рода ассоциации «один ко многим», когда одной модели принадлежит любое количество других моделей.Вы можете сделать это в 2 таблицах.

Для модели формы:

class Form extends Model
{
    public function progs()
    {
        return $this->hasMany('App\Prog');
    }
}

Для модели Prog:

class Prog extends Model
{
    public function form()
    {
        return $this->belongsTo('App\Form');
    }
}

Как только отношения определены, вы можете получить их «динамические свойства» в обоих направлениях.

// Get progs in form _id = 1
$progs = App\Form::find(1)->progs;

foreach ($progs as $prog) {
    //..
}

// Get Form Title in Prog _id = 1
$prog = App\Prog::find(1);

echo $prog->form->title;
...