mardi 22 décembre 2015

How to get associated table's rows in eager loading: Laravel 5.1

I have three Database Tables.

CREATE TABLE `tblproject` (
  `ProjectID` int(11) NOT NULL,
  `ProjectStatusID` varchar(30) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

CREATE TABLE `tblprojectSkills` (
  `ProjectSkillID` int(11) NOT NULL,
  `ProjectID` int NOT NULL,
  `SkillID` int NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

CREATE TABLE `tblSkills` (
  `SkillID` int(11) NOT NULL,
  `Skill` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

In the above tables. SkillID is related in tblSkills and tblprojectSkills. ProjectID is related in Project and projectSkills Table

My project Model is below.

class Project_Model extends Model
{
    protected $table = "tblproject";
    protected $primaryKey = "ProjectID";
    public $timestamps = false;

    public function ProjectSkills() {
        return $this->hasMany('\App\Models\ProjectSkill_Model', 'ProjectID');
    }        
}

class ProjectSkill_Model extends Model
{
    protected $table = "tblprojectskill";
    protected $primaryKey = "ProjectSkillID";
    public $timestamps = false;
}

class Skill_Model extends Model
{
    protected $table = "tblskill";
    protected $primaryKey = "SkillID";
    public $timestamps = false;
}

Database Query in laravel 5.1 is below.

\App\Models\Project\Project_Model
::with('ProjectSkills')
->where('ProjectID', '=', $ProjectID)->first();

Question

I can get the Skill ID, But, How can I get the Skill Name from Skill Table ?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire