@SVZhidkow
Бэкенд-разработчик

Как в Laravel построить отношения одной дочерней модели с другой через родительскую?

Добрый день!

У меня есть три таблицы:

projects
    id - integer
    name - string

clients
    id - integer
    project_id - integer
    name - string

metricas
    id - integer
    project_id - integer
    title - string


Соответственно в родительской модели Project я прописываю следующие отношения с Client и Metrica:

class Project extends Model
{
    public function client()
    {
        return $this->hasOne(Client::class);
    }

    public function metrica()
    {
        return $this->hasOne(Metrica::class);
    }
}


Ну, а в Client и Metrica я прописываю стандартные отношения belongsTo()

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

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


Вопрос: как прописать отношения между Client и Metrica?
  • Вопрос задан
  • 203 просмотра
Решения вопроса 1
Alex_Wells
@Alex_Wells
PHP/Kotlin
Очень легко.

Client:

hasMany(Metric::class, 'project_id', 'project_id')

Metric:

hasMany(Client::class, 'project_id', 'project_id')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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