Laravel 5 get data from multiple(3) tables -


i have 3 tables: employees, employeeprofiles, employeeskills. model relationship follows

1. employee model      public function employeeprofile(){     return $this->hasone('app\employeeprofile', 'employee_id');     }      public function employeeskill(){     return $this->hasmany('app\employeeskill', 'employee_id);     }  2. employeeprofile model      public function employee(){     return $this->belongsto('app\employee', 'employee_id');     }  3. employeeskill model      public function employee(){     return $this->belongsto('app\employee', 'employee_id');     } 

employee table has columns id, fname, lname, email. employee profile table has id, employee_id foreign key referencing employee table, join_date , others. employeeskills table has columns id, employee_id foreign key referencing employee table , skill_name. 1 employee can have many skills. want access employees in employee table profiles(employeeprofile table) , skills(employeeskills table) in controller , pass variable view , display each employee using foreach. when use 2 table (employee , employeeprofile), works fine on introducing third table, dont results.

i need

$employees = employee::with('employeeprofile')->employee()->get(); 

then pass $employee varible view , perform

@foreach($employee $employee) name: $employee->fname, joined: $employee->join_date, skill 1 : list skills employee has @endforeach 

how go it?

you should use advantages eloquent orm gives you.

the methods (e.g. employeeskill) you've defined in employee model can used related objects when used property/attribute.

$employees = employee::all(); //get (not soft-deleted) employees foreach($employees $e) {     $name = $e->fname; //the name of employee     $join = $e->join_date; //the join date         foreach($employees->employeeskill $skill) //iterate on skills of employee         {             echo $skill->name; //echo name of each skill         } } 

check out the docs more.


Comments

Popular posts from this blog

sql - invalid in the select list because it is not contained in either an aggregate function -

Angularjs unit testing - ng-disabled not working when adding text to textarea -

How to start daemon on android by adb -