Missing required parameter for [Route: password.reset] [URI: reset-password/{token}] - laravel

Im trying to implement the fortify authentication.
When I want to reset the password it opens the route: reset-password. When I open the link it gives me an error message:
Missing required parameter for [Route: password.reset] [URI: reset-password/{token}]
i'm using the following versions:
php 8.0.2
Laravel Framework 8.32.1
npm 6.17.11
Anyone able to help me out with this ?
FortifyServiceProvider.php:
Fortify::loginView(function(){
return view( view: 'auth.login');
});
Fortify::registerView(function(){
return view( view: 'auth.register');
});
Fortify::requestPasswordResetLinkView(function(){
return view( view: 'auth.forgot-password');
});
Fortify::resetPasswordView(function($request){
return view('auth.reset-password', ['token' => $request]);
});
reset-password.blade.php
#extends('template')
#section('content')
<div class="container">
<div class="card login-card">
<div class="row no-gutters">
<div class="col-md-5">
<img src="/img/login.jpg" alt="login" class="login-card-img">
</div>
<div class="col-md-7">
#if ($errors->any())
#foreach ($errors->all() as $error)
<h1>{{ $error }}</h1>
#endforeach
#endif
#error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
<div class="card-body">
<div class="brand-wrapper">
<img src="/img/logo.png" alt="logo" class="logo">
</div>
<p class="login-card-description">Reset password</p>
<form method="POST" action="{{ route('password.reset') }}">
#csrf
<input type="hidden" name="token" value="{{$request->route('token')}}">
<div class="form-group">
<label for="email" class="sr-only">Email</label>
<input type="email" name="email" id="email" class="form-control"
placeholder="Email address" value="{{request->email}}">
#error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
<div class="form-group mb-4">
<label for="password" class="sr-only">Password</label>
<input id="password" type="password" class="form-control #error('password') is-invalid #enderror" name="password" required autocomplete="new-password" placeholder="Password">
#error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
<div class="form-group mb-4">
<label for="password" class="sr-only">Password</label>
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password" placeholder="Confirm password">
</div>
<input name="login" id="login" class="btn btn-block login-btn mb-4" type="submit" value="Update">
</form>
<p class="login-card-footer-text">Don't have an account? <a href="{{ route('register') }}"
class="text-reset">Register here</a></p>
<nav class="login-card-footer-nav">
Terms of use.
Privacy policy
</nav>
</div>
</div>
</div>
</div>
#endsection
forgot-password.blade.php
#extends('template')
#section('content')
<div class="container">
<div class="card login-card">
<div class="row no-gutters">
<div class="col-md-5">
<img src="/img/login.jpg" alt="login" class="login-card-img">
</div>
<div class="col-md-7">
#if ($errors->any())
#foreach ($errors->all() as $error)
<h1>{{ $error }}</h1>
#endforeach
#endif
#error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
<div class="card-body">
<div class="brand-wrapper">
<img src="/img/logo.png" alt="logo" class="logo">
</div>
<p class="login-card-description">Reset password</p>
#if(session('status'))
{{session('status')}}
#endif
<form method="POST" action="{{ route('password.request') }}">
#csrf
<div class="form-group">
<label for="email" class="sr-only">Email</label>
<input type="email" name="email" id="email" class="form-control"
placeholder="Email address">
#error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
<input name="login" id="login" class="btn btn-block login-btn mb-4" type="submit" value="Reset">
</form>
<p class="login-card-footer-text">Don't have an account? <a href="{{ route('register') }}"
class="text-reset">Register here</a></p>
<nav class="login-card-footer-nav">
Terms of use.
Privacy policy
</nav>
</div>
</div>
</div>
</div>
#endsection
register.blade.php
#extends('template')
#section('content')
<div class="container">
<div class="card login-card">
<div class="row no-gutters">
<div class="col-md-5">
<img src="/img/login.jpg" alt="login" class="login-card-img">
</div>
<div class="col-md-7">
<div class="card-body">
<div class="brand-wrapper">
<img src="/img/logo.png" alt="logo" class="logo">
</div>
<p class="login-card-description">Register a new account</p>
<form method="POST" action="{{ route('register') }}">
#csrf
<div class="form-group">
<label for="name" class="sr-only">Name</label>
<input id="name" type="text" class="form-control #error('name') is-invalid #enderror" name="name" value="{{ old('name') }}" required autocomplete="name" autofocus placeholder="Name">
</div>
#error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
<div class="form-group">
<label for="email" class="sr-only">Email</label>
<input id="email" type="email" class="form-control #error('email') is-invalid #enderror" name="email" value="{{ old('email') }}" required autocomplete="email" placeholder="Email address">
#error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
<div class="form-group mb-4">
<label for="password" class="sr-only">Password</label>
<input id="password" type="password" class="form-control #error('password') is-invalid #enderror" name="password" required autocomplete="new-password" placeholder="Password">
#error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
<div class="form-group mb-4">
<label for="password" class="sr-only">Password</label>
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password" placeholder="Confirm password">
</div>
<input name="register" id="register" class="btn btn-block login-btn mb-4" type="submit" value="Register">
</form>
Forgot password?
<p class="login-card-footer-text">Alredy have an account? Login here</p>
<nav class="login-card-footer-nav">
Terms of use.
Privacy policy
</nav>
</div>
</div>
</div>
</div>
</div>
#endsection
login.blade.php
#extends('template')
#section('content')
<div class="container">
<div class="card login-card">
<div class="row no-gutters">
<div class="col-md-5">
<img src="/img/login.jpg" alt="login" class="login-card-img">
</div>
<div class="col-md-7">
#if($errors->any())
#foreach ($errors->all() as $error)
<h1>{{ $error }}</h1>
#endforeach
#endif
#error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
<div class="card-body">
<div class="brand-wrapper">
<img src="/img/logo.png" alt="logo" class="logo">
</div>
<p class="login-card-description">Sign into your account</p>
<form method="POST" action="{{ route('login') }}">
#csrf
<div class="form-group">
<label for="email" class="sr-only">Email</label>
<input type="email" name="email" id="email" class="form-control" placeholder="Email address">
#error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
<div class="form-group mb-4">
<label for="password" class="sr-only">Password</label>
<input type="password" name="password" id="password" class="form-control" placeholder="***********">
#error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
<input name="login" id="login" class="btn btn-block login-btn mb-4" type="submit" value="Login">
</form>
Forgot password?
<p class="login-card-footer-text">Don't have an account? Register here</p>
<nav class="login-card-footer-nav">
Terms of use.
Privacy policy
</nav>
</div>
</div>
</div>
</div>
#endsection
template.blade.php
<!doctype html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title>
<!-- Scripts -->
<script src="{{ asset('js/app.js') }}" defer></script>
<!-- Styles -->
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<body>
<div id="app">
<main class="d-flex align-items-center min-vh-100 py-3 py-md-0">
#yield('content')
</main>
</div>
</body>
</html>

In reset-password.blade.php change the route password.reset to password. update like below
<form method="POST" action="{{ route('password.update') }}">
and this
<input type="email" name="email" id="email" class="form-control"
placeholder="Email address" value="{{request->email}}">
to this
<input type="email" name="email" id="email" class="form-control"
placeholder="Email address" value="{{$request->email}}">
you were missing the $ in request->email
change this ['token' => $request] to ['request' => $request] like below
Fortify::resetPasswordView(function($request){
return view('auth.reset-password', ['token' => $request]);
});
Hope it works

Related

Laravel 8 Image source not readable, on Intervention Image resize (Shared hosting)

I'm using Laravel 8. I was working on my machine (locally), after deploying it on the Shared hosting (my case Bluehost), I have moved the project to the root of my hosting, And I created a subdomain to my Laravel project, and I moved the public folders file to the subdomain folder.
I have executed the php artisan storage:link, everything works fine, even the images are uploaded, but the problem is when I use the Intervention Image to resize the image it shows
Intervention\Image\Exception\NotReadableException
Image source not readable
The code:
$imageName = $request['image']->store('uploads/brand', 'public');
Intervention\Image\Facades\Image::make(public_path("storage/{$imageName}"))->fit(1024, 1024)->save();
I have tried some solutions, but no result, the error kept the same
The solutions that I tried:
1- config/filesystems.php
'links' => [
base_path('/public_html/storage') => storage_path('app/public'),
],
2- I tried to specify the public path manually.
3- https://stackoverflow.com/a/39971026/5862126
the error is
Intervention\Image\Exception\NotWritableException
Can't write image data to path (/home4/ctwotec3/laravel_market/public/uploads/4386300.jpg)
Edited 1:
HTML Form code
#extends('layouts.app')
#section('content')
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="container">
<form action="/brand" enctype="multipart/form-data" method="POST">
{{ csrf_field() }}
<div class="card">
<div class="card-header">
<h1 class="text-center">New Brand</h1>
</div>
<div class="card-body">
<div class="col-10 offset-1">
{{-- Name English --}}
<div class="row">
<div class="row mb-3">
<label for="name_en" class="col-md-4 col-form-label text-md-end">Name English</label>
<div class="col-md-6">
<input id="name_en" type="text"
class="form-control #error('name_en') is-invalid #enderror" name="name_en"
value="{{ old('name_en') }}" autocomplete="name_en" autofocus>
#error('name_en')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
</div>
</div>
{{-- Name Kurdish --}}
<div class="row">
<div class="row mb-3">
<label for="name_ku" class="col-md-4 col-form-label text-md-end">Name Kurdish</label>
<div class="col-md-6">
<input id="name_ku" type="text"
class="form-control #error('name_ku') is-invalid #enderror" name="name_ku"
value="{{ old('name_ku') }}" autocomplete="name_ku" autofocus>
#error('name_ku')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
</div>
</div>
{{-- Name Arabic --}}
<div class="row">
<div class="row mb-3">
<label for="name_ar" class="col-md-4 col-form-label text-md-end">Name Arabic</label>
<div class="col-md-6">
<input id="name_ar" type="text"
class="form-control #error('name_ar') is-invalid #enderror" name="name_ar"
value="{{ old('name_ar') }}" autocomplete="name_ar" autofocus>
#error('name_ar')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
</div>
</div>
{{-- Single image --}}
<div class="row">
<div class="row mb-3">
<label for="image"
class="col-md-4 col-form-label text-md-end">{{ __('Item image') }}</label>
<div class="col-md-6">
<input id="chooseFile" type="file" class="form-control" name="image" #error('image')
is-invalid #enderror accept=".jpg,.jpeg,.png">
#error('image')
<strong style="color: red">{{ $message }}</strong>
#enderror
</div>
</div>
</div>
</div>
</div>
</div>
<div class="d-flex justify-content-center">
<button class="btn btn-primary mt-3 mb-3 float-end w-75 ">submit</button>
</div>
</form>
</div>
#endsection
Edited 2: here is the path of the uploaded image on the server, that the Intervention Image can't read it
/home4/ctwotec3/laravel_market/public/storage/uploads/brand/r0kBFdXcxCg59WKIwmNsIwq16g30mWs4LZLxWSeT.jpg

How to Handle Laravel error messages in vue?

I know I did something wrong here, but how do you handle error messages of Laravel in vue template?... is there a way of bypassing the #error of the laravel Blade templating
this is the vue component file (fileComponent.vue)
<template>
<div class="row my-2">
<div class="col-md-2 font-weight-bold pt-2">Grade:</div>
<div class="col-md-10">
<select name="grade" class="form-control #error('grade') is-invalid #enderror" v-model="selected_grade" #change="onChange($event)">
<option v-for="grade in grading" :key="grade.id" :value="grade.name">{{grade.name}}</option>
</select>
#error('grade')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
<div class="row my-3" v-if="subjects !== null">
<div class="col-md-3">
<div class="card shadow">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold">Subjects:</h6>
</div>
<div class="card-body">
<div class="custom-control custom-checkbox" v-for="subject in subjects" :key="subject.id">
<input type="checkbox" class="custom-control-input #error('subjects') is-invalid #enderror" name="subjects[]" :id="subject.name" :value="subject.name"/>
<label class="custom-control-label" :for="subject.name">{{subject.name}}</label>
</div>
#error('subjects')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
</div>
</div>
</div>
</div>
</div>
</template>
This is Shown on the page instead of error message

Redirect to registration bootstrap model in Laravel 6

I am using the following code in my controller for redirecting to login page if a guest user clicks button for uploading a product. Now I have created bootstrap model for login and registration. I want to pop-up the modal if user click button.
public function __construct()
{
$this->middleware('auth')->except('index', 'show');
}
Login and Register Button
#guest
<li class="list-inline-item">
<button type="button" class="btn btn-primary btn-outline-light" data-toggle="modal" data-target="#signIn" href="{{ route('login') }}">{{ __('Login') }}</button>
</li>
#if (Route::has('register'))
<li class="list-inline-item">
<button type="button" class="btn btn-primary btn-outline-light" data-toggle="modal" data-target="#signUp" href="{{ route('register') }}">{{ __('Register') }} </button>
</li>
#endif
Bootstrap Modal
<div class="modal" id="signIn">
<div class="modal-dialog">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header">
<h4 class="modal-title">SignIn</h4>
<button type="button" class="close" data-dismiss="modal">
×
</button>
</div>
<!-- Modal body -->
<div class="modal-body">
<form method="POST" action="{{ route('login') }}">
#csrf
<div class="form-group">
<label for="email" class="">{{ __('E-Mail Address') }}</label>
<input id="email" type="email" class="form-control" #error('email') is-invalid #enderror"
name="email" value="{{ old('email') }}" required autocomplete="email" autofocus />
#error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
<div class="form-group">
<label for="password" class="">{{ __('Password') }}</label>
<input id="password" type="password"
class="form-control #error('password') is-invalid #enderror" name="password" required
autocomplete="current-password">
#error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-block">
Sign In
</button>
</div>
</form>
</div>
</div>
</div>
</div>

syntax error, unexpected 'layouts' (T_STRING), expecting ')' (View: C:\xampp7\htdocs\shopping\resources\views\auth\register.blade.php)

ican not open to page "register.blade.php" when I click to register itt alert this error
syntax error, unexpected 'layouts' (T_STRING), expecting ')' (View: C:\xampp7\htdocs\shopping\resources\views\auth\register.blade.php) I can open page login.blade.php
my code in app.blade.php::
<a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
#if (Route::has('register'))
<li class="nav-item">
<a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
</li>
#endif
There is a problem with your Register helper function, you are missing ')
<button type="submit" class="btn btn-primary">
{{ __('Register}}
</button>
Change to
<button type="submit" class="btn btn-primary">
{{ __('Register')}}
</button>
register.blade.php::
#extends('layouts.app')
#section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">{{ __('Register') }}</div>
<div class="card-body">
<form method="POST" action="{{ route('register') }}">
#csrf
<div class="form-group row">
<label for="name" class="col-md-4 col-form-label text-md-right">{{ __('Name') }}</label>
<div class="col-md-6">
<input id="name" type="text" class="form-control #error('name') is-invalid #enderror" name="name" value="{{ old('name') }}" required autocomplete="name" autofocus>
#error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
</div>
<div class="form-group row">
<label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control #error('email') is-invalid #enderror" name="email" value="{{ old('email') }}" required autocomplete="email">
#error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
</div>
<div class="form-group row">
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control #error('password') is-invalid #enderror" name="password" required autocomplete="new-password">
#error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
</div>
<div class="form-group row">
<label for="password-confirm" class="col-md-4 col-form-label text-md-right">{{ __('Confirm Password') }}</label>
<div class="col-md-6">
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password">
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-6 offset-md-4">
<button type="submit" class="btn btn-primary">
{{ __('Register}}
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
#endsection

Laravel: cascading model login and registration using bootstrap

I am trying to make a cascaded login and registration model using bootstrap.
when I click on sign in button the model pop up which is fine but login field is not working. Registration button is working. Again click on Login button the fields appear. Here is the screenshots and code
<a href="#" class="nav-link" data-toggle="modal" data-target="#exampleModal">
<img src="public/img/sign-in-icon.png" class="img-sign-in img-responsive"></a></li>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<!-- Nav tabs -->
<ul class="nav nav-tabs md-tabs tabs-2">
<li class="active">
<a class="nav-link active" data-toggle="tab" href="#login-form" role="tab"><i class="fas fa-user mr-1"></i>
Login</a>
</li>
<li>
<a class="nav-link" data-toggle="tab" href="#registration-form" role="tab"><i class="fas fa-user-plus mr-1"></i>
Register</a>
</li>
</ul>
<!--
<li class="nav-item">
Register
</li> -->
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="tab-content">
<div id="login-form" class="tab-pane fade in active">
<form method="POST" action="{{ route('login') }}">
#csrf
<div class="form-group row">
<label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control #error('email') is-invalid #enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>
#error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
</div>
<div class="form-group row">
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control #error('password') is-invalid #enderror" name="password" required autocomplete="current-password">
#error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
#enderror
</div>
</div>
<div class="form-group row">
<div class="col-md-6 offset-md-4">
<div class="form-check">
<input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>
<label class="form-check-label" for="remember">
{{ __('Remember Me') }}
</label>
</div>
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-8 offset-md-4">
<button type="submit" class="btn btn-primary">
{{ __('Login') }}
</button>
#if (Route::has('password.request'))
<a class="btn btn-link" href="{{ route('password.request') }}">
{{ __('Forgot Your Password?') }}
</a>
#endif
</div>
</div>
</form>
</div>
<div id="registration-form" class="tab-pane fade">
<form action="/">
<div class="form-group">
<label for="name">Your Name:</label>
<input type="text" class="form-control" id="name" placeholder="Enter your name" name="name">
</div>
<div class="form-group">
<label for="newemail">Email:</label>
<input type="email" class="form-control" id="newemail" placeholder="Enter new email" name="newemail">
</div>
<div class="form-group">
<label for="newpwd">Password:</label>
<input type="password" class="form-control" id="newpwd" placeholder="New password" name="newpwd">
</div>
<button type="submit" class="btn btn-default">Register</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
Does anybody please know, what is wrong with the code?

Resources