I created a password initial with email notification, now the problem here is when i click the link in the email i got an error. it says attempt to read property on null
this is my code by the way.
in my users table i add the
$table->boolean('needs_password')->default(false);
the User Model
protected $table = 'users';
protected $fillable = [
'name',
'rec_id',
'email',
'join_date',
'phone_number',
'status',
'role_name',
'avatar',
'needs_password',
'password',
];
and my user controller after the admin create a user
$url = URL::signedRoute('password-redirect');
$pass = Str::random(30);
$image = time().'.'.$request->image->extension();
$request->image->move(public_path('/assets/images/'), $image);
$user = new User;
$user->name = $request->name;
$user->email = $request->email;
$user->join_date = $todayDate;
$user->role_name = $request->role_name;
$user->status = $request->status;
$user->avatar = $image;
$user->password = $pass;
$user->save();
DB::commit();
Mail::send('auth.mail', [ 'url' => $url], function($message) use ($request) {
$message->from('noreply@taskproph.com');
$message->to($request->email);
$message->subject('Reset Password Notification');
});
in my password controller
public function __construct()
{
$this->middleware('signed');
$this->middleware('needs_password');
}
public function create(User $user)
{
return view('auth.mail');
}
in my need_password middleware
public function handle(Request $request, Closure $next)
{
$user = $request->route('users');
if ($user->needs_password) {
return $next($request);
}
abort(400);
}
in my route
Route::controller(PasswordController::class)->group(function () {
Route::get('/password-redirect', 'create')->middleware('signed','needPass')->name('password-redirect');
Route::post('/create-password', 'store')->middleware('needPass')->name('create-password');
});