Reputation: 2233
I have two tables 1. Course 2.User.
User can choose course from list of courses and with his entity he can save his user information. Now an Admin can check the user details.so, there is a user details page in there i want to show user details. But it's not
Here is the User Model:
<?php
namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
protected $table='users';
protected $fillable=['name','email','phone','course_id'];
public function roles()
{
return $this->belongsToMany('App\Role', 'user_role', 'user_id', 'role_id');
}
public function hasAnyRole($roles)
{
if (is_array($roles)) {
foreach ($roles as $role) {
if ($this->hasRole($role)) {
return true;
}
}
} else {
if ($this->hasRole($roles)) {
return true;
}
}
return false;
}
public function hasRole($role)
{
if ($this->roles()->where('name', $role)->first()) {
return true;
}
return false;
}
public function course()
{
return $this->hasMany('App\Course');
}
}
Here is the Course Model:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Course extends Model
{
protected $table='courses';
protected $fillable = ['name'];
public function user()
{
return $this->belongsToMany('App\User','course_id');
}
}
Here is the controller:
<?php
namespace App\Http\Controllers;
use App\User;
use App\Role;
use App\Fee;
use App\Course;
use Illuminate\Support\Facades\Input;
use Illuminate\Http\Request;
class AppController extends Controller
{
public function getStudentDetails(){
// $user = User::all();
$user = \DB::table('users')->where('course_id','!=',0) ->get();
return view('studentDetails', compact('user'));
}
}
I have to show only those users data who have selected the courses from list. How could i do it?
Upvotes: 0
Views: 63
Reputation: 10631
Get User data in controller:
$user=User::with('courses')->first();
In view, check if a user has a course , before tr, in tbody use this condition
<tbody>
@foreach($user as $row)
@if($row->courses)<tr><td></td></tr>
@endif
@endforeach
</tbody>
Then access course name by using this code
{{ $row->courses->name }}
Upvotes: 2