我有一个包含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')
);
答案 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(){
}