2016-11-14 54 views
1

我已經設置laravel 5.3新設置與mongodb工作正常,但在密碼重置提交表單時我收到錯誤。碳日期錯誤在新安裝laravel 5.3

異常在Carbon.php線221:DateTime::__construct()預計參數1是串,陣列預先

+1

我們可以得到您用來重置密碼的代碼嗎? – prateekkathal

+0

$ response = $ this-> broker() - > reset( $ this-> credentials($ request),function($ user,$ password){ $ this-> resetPassword($ user,$ password); } ); –

+0

從這裏,錯誤即將到來而我無法得到這些行寫入函數的實際定義?? –

回答

1
<?php 

namespace Illuminate\Foundation\Auth; 

use Illuminate\Support\Str; 
use Illuminate\Http\Request; 
use Illuminate\Support\Facades\Auth; 
use Illuminate\Support\Facades\Password; 

trait ResetsPasswords 
{ 
    use RedirectsUsers; 

    /** 
    * Display the password reset view for the given token. 
    * 
    * If no token is present, display the link request form. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param string|null $token 
    * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View 
    */ 
    public function showResetForm(Request $request, $token = null) 
    { 

     return view('auth.passwords.reset')->with(
      ['token' => $token, 'email' => $request->email] 
     ); 
    } 

    /** 
    * Reset the given user's password. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @return \Illuminate\Http\Response 
    */ 
    public function reset(Request $request) 
    { 


     $this->validate($request, $this->rules(), $this->validationErrorMessages()); 

     // Here we will attempt to reset the user's password. If it is successful we 
     // will update the password on an actual user model and persist it to the 
     // database. Otherwise we will parse the error and return the response. 

     $response = $this->broker()->reset(
      $this->credentials($request), function ($user, $password) { 
       $this->resetPassword($user, $password); 
      } 
     ); 


     // If the password was successfully reset, we will redirect the user back to 
     // the application's home authenticated view. If there is an error we can 
     // redirect them back to where they came from with their error message. 
     return $response == Password::PASSWORD_RESET 
        ? $this->sendResetResponse($response) 
        : $this->sendResetFailedResponse($request, $response); 
    } 

    /** 
    * Get the password reset validation rules. 
    * 
    * @return array 
    */ 
    protected function rules() 
    { 
     return [ 
      'token' => 'required', 'email' => 'required|email', 
      'password' => 'required|confirmed|min:6', 
     ]; 
    } 

    /** 
    * Get the password reset validation error messages. 
    * 
    * @return array 
    */ 
    protected function validationErrorMessages() 
    { 
     return []; 
    } 

    /** 
    * Get the password reset credentials from the request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @return array 
    */ 
    protected function credentials(Request $request) 
    { 
     return $request->only(
      'email', 'password', 'password_confirmation', 'token' 
     ); 
    } 

    /** 
    * Reset the given user's password. 
    * 
    * @param \Illuminate\Contracts\Auth\CanResetPassword $user 
    * @param string $password 
    * @return void 
    */ 
    protected function resetPassword($user, $password) 
    { 
     $user->forceFill([ 
      'password' => bcrypt($password), 
      'remember_token' => Str::random(60), 
     ])->save(); 

     $this->guard()->login($user); 
    } 

    /** 
    * Get the response for a successful password reset. 
    * 
    * @param string $response 
    * @return \Illuminate\Http\Response 
    */ 
    protected function sendResetResponse($response) 
    { 
     return redirect($this->redirectPath()) 
          ->with('status', trans($response)); 
    } 

    /** 
    * Get the response for a failed password reset. 
    * 
    * @param \Illuminate\Http\Request 
    * @param string $response 
    * @return \Illuminate\Http\RedirectResponse 
    */ 
    protected function sendResetFailedResponse(Request $request, $response) 
    { 
     return redirect()->back() 
        ->withInput($request->only('email')) 
        ->withErrors(['email' => trans($response)]); 
    } 

    /** 
    * Get the broker to be used during password reset. 
    * 
    * @return \Illuminate\Contracts\Auth\PasswordBroker 
    */ 
    public function broker() 
    { 
     return Password::broker(); 
    } 

    /** 
    * Get the guard to be used during password reset. 
    * 
    * @return \Illuminate\Contracts\Auth\StatefulGuard 
    */ 
    protected function guard() 
    { 
     return Auth::guard(); 
    } 
} 

我用這laravel默認代碼

0

添加此行config/app.php給出

由於解決問題:

Jenssegers\Mongodb\Auth\PasswordResetServiceProvider::class,