Skip to content

Broken relation hasOneThrough (using Many-to-Many Pivot) after update #53557

@MarekGogol

Description

@MarekGogol

Laravel Version

v11.31.0

PHP Version

8.3.8

Database Driver & Version

8.3.8 for macOs

Description

Relation returns collection instead of eloquent after minor laravel update.

This applies only when using methods ->though(xxx)->has(yyy), but not when using ->hasOneThrough

image

Correct (v11.30.0):
image

Wrong (v11.31.0):
image

Steps To Reproduce

Just setup simple has one trough relation according to documentation.

image

My code

Student.php

class Student extends Model
{
    public function termine()
    {
        return $this->through('terminesPivot')
                    ->has('termine');
    }

StudentsTerminesPivot.php

class StudentsTerminesPivot extends Pivot
{
    public $table = 'termine_student_termines';

    public function termine()
    {
        return $this->hasOne(Termine::class, 'id', 'termine_id');
    }
}

Termine.php

class Termine extends Model
{

}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions