不同的名称字段用户表?

时间:2013-06-20 20:01:33

标签: authentication laravel-4

我有一个包含2个字段的表单(用户名,密码)和一个包含2个相同字段(用户名,密码)的mysql表,并且我的身份验证系统正常工作:)

但是,如果我的表字段具有不同的名称,我无法使其工作,例如:( my_user,my_pass )。

如果你只是更改另一个用户名字段对我来说也有用,那就是密码字段给我带来的问题。

我的配置 auth.php

'driver' => 'eloquent'

更新

在我的控制器中找到了解决方案,password名称无法更改。

之前(错误): 我首先做的是错误的

$userdata = array(
        'my_user' => Input::get('my_user'),
        'my_pass' => Input::get('my_pass')
    );

应该是

$userdata = array(
        'my_user' => Input::get('my_user'),
        'password' => Input::get('my_pass')
    );

3 个答案:

答案 0 :(得分:7)

您可以在配置文件夹中的auth.php中定义自己的用户名和密码字段。

 return array(
    'driver' => 'eloquent',
    'username' => 'my_user',
    'password' => 'my_pass',
    'model' => 'User',
    'table' => 'users',
 );

我希望这可以提供一些帮助。

答案 1 :(得分:3)

我遇到了同样的问题。您需要扩展您的模型:

// User.php

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

class User extends Eloquent implements UserInterface, RemindableInterface {

    protected $fillable = array('name','passwd','email','status','timezone','language','notify');
    protected $hidden = array('passwd');

    protected $table = "users_t";
    protected $primaryKey = "uid";

    public static $rules = array(
        'name' => 'required',
        'passwd' => 'required',
        'email' => 'required'
    );

    public function getAuthIdentifier() {
        return $this->getKey();
    }

    public function getAuthPassword() {
        return $this->passwd;
    }

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

    public static function validate($data) {
        return Validator::make($data,static::$rules);
    }
}

答案 2 :(得分:-4)

您也需要实现此方法:

public function getRememberToken(){

}
public function setRememberToken($value){

}
public function getRememberTokenName(){

}