mardi 27 août 2019

Make a custom model that will get data from another model laravel 5.8

I have a model, which is storing foreign key data of various tables. Here is the model details:

class InstituteStage extends Model
{
    protected $guarded = [];

    public function branch()
    {
        return $this->belongsTo('App\Model\Branch');
    }

    public function version()
    {
        return $this->belongsTo('App\Model\Version');
    }

    public function shift()
    {
        return $this->belongsTo('App\Model\Shift');
    }

    public function stage()
    {
        return $this->belongsTo('App\Model\Stage');
    }

    public function academic_year()
    {
        return $this->belongsTo('App\Model\AcademicYear');
    }

}

Right now if i fetch the data, i'm getting those fields:

Array
(
    [0] => Array
        (
            [id] => 3
            [stage_for] => Teachers
            [branch_id] => 1
            [version_id] => 1
            [shift_id] => 1
            [stage_id] => 1
            [academic_year_id] => 1
        )

    [1] => Array
        (
            [id] => 4
            [stage_for] => Students
            [branch_id] => 2
            [version_id] => 2
            [shift_id] => 2
            [stage_id] => 2
            [academic_year_id] => 2
        )
)

Now i want the details (such as name) of other tables. The response i'm looking for is:

Array
(
    [0] => Array
        (
            [id] => 3
            [stage_for] => Teachers
            [institute_stage_name] => "branch_name->version_name->shift_name->stage_name" 
        )

    [1] => Array
        (
            [id] => 4
            [stage_for] => Students
            [institute_stage_name] => "branch_name->version_name->shift_name->stage_name" 
        )
)

I can get datas using eager loading and concat them in frontend. But i want to use a custom model which will return this details. Is it possible to get this structure!



from Newest questions tagged laravel-5 - Stack Overflow https://ift.tt/2Ub2a1E
via IFTTT

Aucun commentaire:

Enregistrer un commentaire