Reputation: 1477
working in recover the password, and everything was working ok since i added a validator, but i get a error: "Undefined method ...\Password\PasswordController::validate"
The function im calling is postEmail
What am i doing wrong?
My code:
<?php
namespace Illuminate\Foundation\Auth;
use Illuminate\Http\Request;
use Illuminate\Mail\Message;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Password;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
trait ResetsPasswords
{
use RedirectsUsers;
/**
* Send a reset link to the given user.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function postEmail(Request $request)
{
$this->validate($request, ['email' => 'required|email']);
$response = Password::sendResetLink($request->only('email'), function (Message $message) {
$message->subject($this->getEmailSubject());
});
switch ($response) {
case Password::RESET_LINK_SENT:
return redirect()
->back()
->with('status', trans($response));
case Password::INVALID_USER:
return redirect()
->back()
->withErrors(['email' => trans($response)]);
}
}
}
Upvotes: 1
Views: 10402
Reputation: 950
A controller doesn't have a validate method unless you use the appropriate traits. You cannot use validate()
function on $this
. It will be working only if you have the ValidatesRequests
trait is used on the controller
so just after
class PasswordController{
you have to insert the below
use ValidateRequests;
Upvotes: 3