Как связать 2 отдельные модели в Laravel? - PullRequest
0 голосов
/ 01 мая 2018

Я создаю инструмент управления проектами для изучения Laravel.

Сейчас у меня есть 2 модели для Project и Task, и я установил отношения между ними:

Проект:

public function task()
{
    return $this->hasMany(Task::class);
}

Задача:

public function project()
{
    return $this->belongsTo(Project::class);
}

Они работают нормально, правильные результаты я вижу в php artisan tinker, но сейчас я жестко программирую, какому проекту принадлежат все задачи.

Я создал, работаю, формы, которые в настоящее время создают обе эти вещи независимо, но теперь я уверен, как связать их вместе, как это сделал бы профессиональный разработчик.

Единственное решение, о котором я могу подумать, - это иметь выпадающий список в представлении createTask, заполненный всеми текущими проектами. Это не очень элегантно и не похоже на то, как с этим справится настоящий разработчик. Мне кажется, что создание задачи в этом смысле должно быть правильно связано с проектом?

1 Ответ

0 голосов
/ 01 мая 2018

Звучит так, будто вы на правильном пути, и я думаю, больше важно, как вы хотите, чтобы ваше приложение работало.

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

Другим вариантом может быть создание представления «Изменить проект», в котором отображается информация только для одного проекта. На этот раз, поскольку вы знаете идентификатор проекта, в который будет добавлена ​​задача, вместо отображения раскрывающегося списка можно использовать скрытый элемент формы для передачи идентификатора.

В зависимости от интерфейса оба метода могут быть подходящими.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...