密码提醒 - 更改电子邮件列

时间:2016-04-22 10:24:42

标签: php laravel laravel-4

我正在尝试在Laravel中执行密码提示 4

我已经设置了控制器,但不断收到错误:

  

SQLSTATE [42S22]:未找到列:1054未知列'电子邮件'   'where子句'(SQL:select {from users where usersdeleted_at   为null且email为空限制1

这是正确的,因为我的用户表中的列“ user_email ”而不是“电子邮件

我们可以通过任何特殊的方式将Laravel运行的查询更改为新的/不同的地方,其中包含user_email而不是电子邮件。

我的控制器如下:

class RemindersController extends Controller {

    /**
     * Display the password reminder view.
     *
     * @return Response
     */
    public function getRemind()
    {
        return View::make('users/password_remind');
    }

    /**
     * Handle a POST request to remind a user of their password.
     *
     * @return Response
     */

    public function postRemind()
    {
        switch ($response = Password::remind(Input::only('email')))
        {
            case Password::INVALID_USER:
                return Redirect::back()
                    ->with('error', Lang::get($response));

            case Password::REMINDER_SENT:
                return Redirect::back()
                    ->with('status', Lang::get($response));
        }
    }

    /**
     * Display the password reset view for the given token.
     *
     * @param  string  $token
     * @return Response
     */
    public function getReset($token = null)
    {
        if (is_null($token)) App::abort(404);

        return View::make('password.reset')->with('token', $token);
    }

    /**
     * Handle a POST request to reset a user's password.
     *
     * @return Response
     */
    public function postReset()
    {
        $credentials = Input::only(
            'email',
            'password',
            'password_confirmation',
            'token'
        );

        $response = Password::reset($credentials, function($user, $password)
        {
            $user->password = Hash::make($password);

            $user->save();
        });

        switch ($response)
        {
            case Password::INVALID_PASSWORD:
            case Password::INVALID_TOKEN:
            case Password::INVALID_USER:
                return Redirect::back()
                    ->with('error', Lang::get($response));

            case Password::PASSWORD_RESET:
                return Redirect::to('/');
        }
    }

}

用户模型

<?php

use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;

class User extends Eloquent implements UserInterface, RemindableInterface {

    use UserTrait, RemindableTrait, SoftDeletingTrait;

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'users';

    /**
     * The attributes excluded from the model's JSON form.
     *
     * @var array
     */
    protected $hidden = array('user_password', 'remember_token');

    protected $dates = ['deleted_at'];

    protected $primaryKey = "user_id";

    protected $fillable = array('user_email');


    public static $rules = array(
        'user_firstname'    => 'required|alpha',
        'user_surname'      => 'required|alpha',
        'user_email'        => 'required|email|unique:users',
        'user_password'     => 'required',
        'user_telephone'    => 'required|numeric'
    );

    /**
     * Get the password for the user.
     *
     * @return string
     */
    public function getAuthPassword()
    {
        return $this->user_password;
    }

    public function getEmail() {
        return $this->user_email;
    }

    public function getReminderEmail() {
        return $this->user_email;
    }

    public function getUserByEmail( $user_email )
    {
        return $this->where('user_email', '=', $user_email)->first();
    }

}

最后但并非最不重要的,我的观点:

{{ Form::open(array('url' => 'password/remind')) }}
    @if (Session::has('error'))
        <p style="color: red;">{{ Session::get('error') }}</p>
    @elseif (Session::has('status'))
        <p>{{ Session::get('status') }}</p>
    @endif
    <div class="form-group">
        <label>Your Email Address</label>
        <input name="user_email" type="email" class="form-control" placeholder="Your Email Address" data-error="Please enter your Email Address" value="{{{ Input::old('user_email') }}}" required>
        <span class="glyphicon form-control-feedback" aria-hidden="true"></span>
        <div class="help-block with-errors"></div>
    </div><!-- /.form-group -->
    <div class="text-center">
        <button type="submit" class="cta">Reset Password</button>
    </div><!-- /.text-center -->
{{ Form::close() }}

0 个答案:

没有答案