我创建了一个自定义用户模型,其中包含自定义受保护$table名称。但是控制器中的尝试方法会继续搜索并使用默认方法("用户"模型和"用户"选项卡)奇怪的部分是,在 Laravel 5.2 中它可以工作。也许只是我错过了一件愚蠢的事情,但为什么它在 5.1 上不起作用?谢谢你的时间。
型:
namespace App;
use IlluminateDatabaseEloquentModel;
class CustomUser extends Model
{
protected $table ='myuserstab';
}
控制器:
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppHttpRequests;
use AppHttpControllersController;
use Auth;
use AppCustomUser;
class loginController extends Controller
{
public function login(Request $request)
{
$username= $request['username'];
$password = $request['password'];
if(Auth::attempt(['username'=>$username, 'password'=>$password]))
{
doSomething...
}
else
{
doSomethingelse...
}
}
...
}
我想你想在config/auth.php
中更改设置
return [
'driver' => 'eloquent',
// change this to AppCustomUser::class, or
'model' => AppUser::class,whatever your model namespace is
// change this to 'myuserstab'
'table' => 'users',
];
值得从文档中阅读以下内容:
https://laravel.com/docs/5.1/authentication#introduction-database-considerations
5.2 支持多个身份验证提供程序,所以也许您可以让两个都在那里工作?如果您查看 5.2 中的配置文件,您会看到以下内容:
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => AppUser::class,
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
您可能需要考虑使用自己的自定义模型进行身份验证的含义,因为 User 模型设置为执行许多现成的操作,您可能需要自己解决。浏览文档应该为您澄清此类注意事项。