Laravel Eloquent Отношения основаны на значении вложенного родителя - PullRequest
0 голосов
/ 27 марта 2020

Структура USER (имеет много) TIMERS (у которого есть один) TIMER_THEME (у которого есть много) TIMER_THEME_OPTIONS (у которого есть один, основанный на USER_ID) USER_TIMER_OPTIONS

все это работает, кроме указанного пользователем c options, потому что у меня проблемы с получением USER_ID от TIMER.

Есть ли способ доступа к данным при определении отношения?

пример запроса:

Timer::find(1)->with('timer_theme.timer_theme_options.user_timer_option')->get();

TIMER_THEME_OPTIONS MODEL. (Я хотел бы сделать что-то вроде этого)

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class TimerThemeOptions extends Model
{

    protected $fillable = [
        'id',
        'timer_theme_id',
        'type',
        'name',
        'selector',
        'attributes',
        'default_value'
    ];

    public function user_timer_option()
    {
        //return $this->timer_theme();
        return $this->hasOne(UserTimerOptions::class)->where('user_id', '=', $this->timer_theme()->timer()->id);
    }

    public function timer_theme() {
        return $this->belongsTo(TimerTheme::class);
    }
}
...