I have a table for users, candidate_skills and skills. A user has many candidate_skills. Each candidate_skill belongs to a user and also belongs to a skill.
The candidate_skills table has these columns:
id
user_id
skill_id
years_xp
comfort_level
created_at
updated_at
The skills table has an
id
name
...
Each user can pick a skill from from the skills table. That record gets added as a candidate_skill.
I am rendering a list of users and I'd like to render the skills that each candidate has. On my user model I have a method to grab a user's candidate_skills:
public function skills()
{
return $this->hasMany('App\CandidateSkill');
}
How do I populate this list with the names of the skills from the skills table?
Right now I'm grabbing the results like:
$candidates = User::whereIn('department_id', $departmentFilters)
->whereIn('work_authorization', $workAuthFilters)
->orderBy('updated_at', 'desc')
->with('skills')
->get();
return response()->json($candidates);
This loads the list of candidate_skills but doesn't include a readable name for what the skill is. The result of the above query gives $candidate->skill
like:
{ "id": 22, "user_id": 43, "skill_id": 64, "years_xp": 2, "comfort_level": null, "created_at": "2019-04-15 18:51:14", "updated_at": "2019-04-15 18:51:14" }
How can I include the name of the skill when rendering the candidate_skills for a user?
For example, skill with id of 64 has a name "PHP". When displaying user 43 I'd like to list out their skill with the name "PHP" instead of 64.
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire