User Model :
namespace App;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable implements MustVerifyEmail
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password', 'phone', 'address', 'is_admin'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
public function docs(){
return $this->hasMany('App\Doc', 'id', 'doc_id');
}
public function courseUsers(){
return $this->hasMany('App\CourseUser', 'id', 'user_id');
}
}
CourseUser Model:
namespace App;
use Illuminate\Database\Eloquent\Model;
class CourseUser extends Model
{
public $timestamps = false;
protected $fillable = [
'user_id',
'course_id',
'start',
'end',
'remarks',
];
public function course() {
return $this->belongsTo('App\Course', 'course_id', 'id');
}
public function user() {
return $this->belongsTo('App\User', 'user_id', 'id');
}
}
Course Model:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Course extends Model
{
public $timestamps = false;
protected $fillable = [
'title',
'description',
'type',
'duration',
'fee',
'image',
'remarks',
'is_active',
];
public function videos(){
return $this->hasMany('App\Video', 'id', 'video_id');
}
public function courseUsers(){
return $this->hasMany('App\CourseUser', 'id', 'course_id');
}
}
Video Model:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Video extends Model
{
protected $fillable = [
'course_id',
'title',
'type',
'description',
'link',
'image',
'remarks',
'display',
];
public function course() {
return $this->belongsTo('App\Course', 'course_id', 'id');
}
}