diff --git a/app/Http/Controllers/CountryController.php b/app/Http/Controllers/CountryController.php index 2b9be507..abf0af73 100644 --- a/app/Http/Controllers/CountryController.php +++ b/app/Http/Controllers/CountryController.php @@ -9,8 +9,7 @@ class CountryController extends Controller public function index() { // TASK: load the relationship average of team size - $countries = Country::all(); - + $countries= Country::withAvg('teams','size')->get(); return view('countries.index', compact('countries')); } } diff --git a/app/Http/Controllers/ProjectController.php b/app/Http/Controllers/ProjectController.php index e04fb1a6..bda92f43 100644 --- a/app/Http/Controllers/ProjectController.php +++ b/app/Http/Controllers/ProjectController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; +use Auth; class ProjectController extends Controller { @@ -10,7 +11,8 @@ public function store(Request $request) { // TASK: Add one sentence to save the project to the logged-in user // by $request->project_id and with $request->start_date parameter - + $user = Auth::user(); + $user->projects()->attach($request->project_id,['start_date'=>$request->start_date]); return 'Success'; } } diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 7ae1d3d6..6db1fcc6 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -8,7 +8,7 @@ class UserController extends Controller { public function index() { - $users = User::all(); + $users = User::with('projects')->has('projects')->get(); return view('users.index', compact('users')); } diff --git a/app/Models/Attachment.php b/app/Models/Attachment.php index 158b6470..b899a4c4 100644 --- a/app/Models/Attachment.php +++ b/app/Models/Attachment.php @@ -14,5 +14,6 @@ class Attachment extends Model public function attachable() { // TASK: fill in the code to make it work + return $this->morphTo(); } } diff --git a/app/Models/Role.php b/app/Models/Role.php index c2f3fc89..01c7d71e 100644 --- a/app/Models/Role.php +++ b/app/Models/Role.php @@ -14,6 +14,6 @@ class Role extends Model public function users() { // TASK: fix this by adding a parameter - return $this->belongsToMany(User::class); + return $this->belongsToMany(User::class,'users_roles'); } } diff --git a/app/Models/Task.php b/app/Models/Task.php index 01f6912d..966a8338 100644 --- a/app/Models/Task.php +++ b/app/Models/Task.php @@ -13,6 +13,6 @@ class Task extends Model public function user() { - return $this->belongsTo(User::class, 'users_id'); + return $this->belongsTo(User::class, 'users_id')->withDefault(['name'=>'']); } -} +} \ No newline at end of file diff --git a/app/Models/Team.php b/app/Models/Team.php index 13969525..52b4a1d1 100644 --- a/app/Models/Team.php +++ b/app/Models/Team.php @@ -14,7 +14,10 @@ class Team extends Model public function users() { // TASK: fix this by adding some extra code - return $this->belongsToMany(User::class); + return $this->belongsToMany(User::class)->withPivot([ + 'position', + 'created_at' + ]); } } diff --git a/app/Models/User.php b/app/Models/User.php index 3d7facd2..5ad8057d 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -45,12 +45,13 @@ class User extends Authenticatable public function tasks() { // TASK: fix this by adding a parameter - return $this->hasMany(Task::class); + return $this->hasMany(Task::class,'users_id'); } public function comments() { // TASK: add the code here for two-level relationship + return $this->hasManyThrough(Comment::class,Task::class,'users_id'); } public function projects() diff --git a/bootstrap/cache/.gitignore b/bootstrap/cache/.gitignore old mode 100644 new mode 100755 diff --git a/resources/views/countries/index.blade.php b/resources/views/countries/index.blade.php index 176f214f..701fd5d5 100644 --- a/resources/views/countries/index.blade.php +++ b/resources/views/countries/index.blade.php @@ -1,5 +1,5 @@