<?php //The Model to a certain Controller, should contain a class with Controller name to which it belongs. // Allows needed strings to passed onto the database. if there is none. class should appear empty. //Reference to where the file belongs. namespace App; //allows the use of many libraries. use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; use Spatie\Permission\Traits\HasRoles; //Class of which should extend Model Library class User extends Authenticatable { use Notifiable; use HasRoles; /** * The attributes that are mass assignable. * * @var array */ //protected variable which contains name of database field(s) to be filled. protected $fillable = [ 'name_first', "name_last", 'email', 'password', "phone" ]; /** * 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 setPasswordAttribute($password) { $this->attributes["password"] = Hash::make($password); } }