@E6APB

Как связать правильно 2 модели в данном случае?

Есть модель Task. Структура в БД такая:

tasks
    id
    user_id
    task_type_id
    data


И есть модель TaskType

task_types
    id
    service_id
    name


У меня один task может иметь только один TaskType. А вот один TaskType может иметь много taskов. Я не могу подобрать правильный relationship. Для одного-к-одному у TaskType должно быть поле task_id, а мне это не нужно. TaskType - своего рода справочник возможных типов тасков. Как мне их связать?
  • Вопрос задан
  • 213 просмотров
Решения вопроса 2
Как-то так
class TaskType extends Model
{
    public function tasks()
    {
        return $this->hasMany('App\Models\Task');
    }
}

class Task extends Model
{
    public function type() {
        return $this->belongsTo('App\Models\TaskType');
    }
}


namespace поправьте на свои. А вообще лучше их сделать как я показал. В папке app не очень удобно их хранить
Ответ написан
Комментировать
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
Связь по task_type_id как в одну так и в другую сторону, связь one-to-many
В одну сторону выбираем tasks c 1 task_types у которого task_types->id == tasks->task_type_id
В другую сторону выбираем task_types с кучей tasks, у которых tasks->task_type_id == task_types->id
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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