I have two models Student
and StudentRevision
with Student
model having hasMany
relation with StudentRevision
model. I have defined a hasMany
relation in Student
as
public function revisions()
{
return $this->hasMany(
StudentRevision',
'sid'
);
}
I have a field in students
table (Student model) which references current revision of student from student_revisions
table.
The table structure is something like this.
students sid srid name ....
student_revisions srid sid batch ....
Now i want to define hasOne
relation with StudentRevision
model which references current revision linked with Student
. Currently I have defined this relation as:
public function current()
{
return $this->hasOne(
'StudentRevision',
'sid'
)
->where('srid', $this->srid);
}
But the problem with this relation is, that $this->srid
is not available during query building process and can be only there after the actual model is available.
Please help how to overcome this.
use the Laravel docs instruction instead. Instantiate a model then add <code>srid</code> parameter
public function revisions()
{
return $this->hasMany(
'StudentRevision',
'sid'
);
}
at your controller
public function getStudent($srid=NULL)
{
$m= new Student();
$g= $m->current()->where('srid',$srid);
var_dump($g);
// another code written here...
}
#cmiiw
Sign in to participate in this thread!
The Laravel portal for problem solving, knowledge sharing and community building.
The community