我有一个表单,我正在尝试使用Laravels Auth方法登录。
目前我有这个片段:
$input = Input::all();
$login = Auth::attempt([
'username' => $input['username'],
'password' => $input['password']
]);
if($login){
return "Logged in";
}
dd('problem');
但即使在输入正确的凭据后,我也会看到“问题”
在 models / User.php 中我已将我的表名更改为tbl_login(就像我在数据库中一样),这是我在其中所做的唯一更改
在我的登录模型中我有
class Login extends Eloquent {
protected $guarded = array();
protected $table = "tbl_login";
protected $primaryKey = "pk_loginID";
public static $rules = array();
}
我也检查了这个topic,但没有真正的帮助,我希望你们现在能帮助我。
正如信息和旁注:Db中的表名= tbl_login
主键字段为pk_loginID
用户名字段=用户名
密码字段=密码
我忘记了什么或者我做错了什么?
修改
我发现问题更具体,但不是解决方案。数据库中的我的密码字段的名称不是Laravel使用的默认密码字段。我怎么能说Laravel使用我的自定义密码字段?
答案 0 :(得分:1)
我找到了解决方案
方法User model
getAuthPassword()
public function getAuthPassword()
{
return $this->attributes['passwordFieldinYourTable'];//change the 'passwordFieldinYourTable' with the name of your field in the table
}
就是这样:))
答案 1 :(得分:0)
你不能改变它,但你可以通过在密码字段中创建新的mutators来解决这个问题:
<?php
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface {
...
public function getPasswordAttribute()
{
return $this->YourPasswordField;
}
public function setPasswordAttribute($password)
{
$this->YourPasswordField = $password;
}
}