Связи в Pivot таблице. Laravel

175
05 августа 2021, 01:50

У меня есть связь MtoM, через pivot таблицу в Laravel. Взять дополнительные поля из pivot таблицы не составляет труда (withPivot), а вот как быть если в pivot у меня тоже связь - не понятно.

Answer 1

Вот как я реализовал это у себя.

https://laravel.com/docs/5.8/eloquent-relationships#defining-custom-intermediate-table-models https://github.com/ajcastro/eager-load-pivot-relations

class Template extends Model
{
    use EagerLoadPivotTrait;
    public function questions(): BelongsToMany
    {
        return $this->belongsToMany(Question::class)
            ->using('App\Models\QuestionTemplatePivot')
            ->has('section')
            ->withPivot('id');
    }
}
class Question extends Model
{
    use EagerLoadPivotTrait;
    public function templates(): BelongsToMany
    {
        return $this->belongsToMany(Template::class)
            ->using('App\Models\QuestionTemplatePivot')
            ->withPivot('id');
    }
}
class QuestionTemplatePivot extends Pivot
{
    protected $table = 'question_template';
    public function positions(): BelongsToMany
    {
        return $this->belongsToMany(Position::class, 'position_question_template', 'question_template_id', 'position_id');
    }
}

Теперь можно вот так получить нужные связи:

        $positions = $template->questions()
            ->with('pivot.positions')
            ->first()
            ->pivot
            ->positions;
READ ALSO
В чём разница между new mysqli и mysqli_connect?

В чём разница между new mysqli и mysqli_connect?

В чём разница между new mysqli() и mysqli_connect()?

195
MySQL в Opencart импорт

MySQL в Opencart импорт

Проблема следующаяЕсть скрипт, который пачками по 1000 товаров импортит товар в магазин на Opencart 2

100
Подключение phpmailer

Подключение phpmailer

Задача: подключить phpmailer для формы обратной связи на сайтеДля начала решил разобраться как работает он в принципе и потом подключать к форме

135
Вывод Sql запроса в Echo

Вывод Sql запроса в Echo

как вывести sql запрос с Where,через echo в php ?

266