2017-06-19 9 views
0

私はlaravel authを使用しています。私は電子メールの列を変更しました。私はResetsPasswordsとSendsPasswordResetEmailsファイルにし、ビューにUSEREMAILにすべての電子メールのフィールドを変更した私は "email"カラムを "userEmail"に変更しました。パスワードがリセットされていません - laravel

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'email' in 'where clause' (SQL: delete from password_resets where email is null)

:と私はこのエラーを取得しています。私はlaravelで新しいので、実際にどのように動作するのか分からない。ここ

thisに基づいて、私のpassword_resetsテーブル

<?php 

use Illuminate\Support\Facades\Schema; 
use Illuminate\Database\Schema\Blueprint; 
use Illuminate\Database\Migrations\Migration; 

class CreatePasswordResetsTable extends Migration 
{ 
    /** 
    * Run the migrations. 
    * 
    * @return void 
    */ 
    public function up() 
    { 
     Schema::create('password_resets', function (Blueprint $table) { 
      $table->string('userEmail', 50)->index(); 
      $table->string('token'); 
      $table->timestamp('created_at')->nullable(); 
     }); 
    } 

    /** 
    * Reverse the migrations. 
    * 
    * @return void 
    */ 
    public function down() 
    { 
     Schema::dropIfExists('password_resets'); 
    } 
} 

答えて

0

で、LaravelのデフォルトUserモデルは、形質CanResetPasswordを使用し、あなたがそれを通過する場合は、この特定の方法があります。

/** 
* Get the e-mail address where password reset links are sent. 
* 
* @return string 
*/ 
public function getEmailForPasswordReset() 
{ 
    return $this->email; 
} 

モデルのこのメソッドをオーバーライドして、ケース内の正しいメールフィールドを返すことができます。したがって、App\Userには、次の方法が必要です。

public function getEmailForPasswordReset() 
{ 
    return $this->userEmail; 
} 
+0

これを実行してもエラーは発生しません。パスワードリセットリンクが電子メールで送られてきました!しかし、私は電子メールを取得していません。私はlaravelから他の用途で電子メールを送信しようとしました。できます。パスワードをリセットすることはできません。私はmailtrap.ioを使用しています –

関連する問題