Nov 7, 2020
0
Level 1
Can't retrieved many-to-many polymorphic pivot table
Hey guys, i have a few table following model
- TeacherClass
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class TeacherClass extends Model
{
use HasFactory;
protected $fillable = [
'name', 'year'
];
/* Model Start */
public function students()
{
return $this->morphedByMany(Student::class, 'teacher_classable');
}
public function teachers()
{
return $this->morphedByMany(Teacher::class, 'teacher_classable');
}
public function teacherAcademicSubjects()
{
return $this->morphedByMany(TeacherAcademicSubject::class, 'teacher_classable')
->using(TeacherClassable::class)
->withPivot('teacher_id');
}
/* Model End */
/* Model Logic */
/* Model Logic End */
}
- TeacherClassable
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Relations\MorphPivot;
class TeacherClassable extends MorphPivot
{
}
- Teacher
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Teacher extends Model
{
use HasFactory;
public function teacherClasses()
{
return $this->morphToMany(TeacherClass::class, 'teacher_classable');
}
}
i want to retrieve teacher_id from Pivot table TeacherClassable
but i just get the teacher_class_id, teacher_classable_id, teacher_classable_type
my controller
public function edit(Teacher $teacher)
{
return EditsClassResource::collection(
$teacher
->teacherClasses
->load([
'teacherAcademicSubjects' =>
function ($query) use ($teacher) {
// want to compare pivot teacher_id === $teacher->id
}
])
);
}
Please or to participate in this conversation.