我的用户数据库表名为' account' (我使用单数名称)和'帐户'是auth用途的型号名称。我在模型上定义了table属性并更改了config / auth.php,如下所示:
class Account extends Ardent implements UserInterface, RemindableInterface
{
protected $guarded = array(
'id', // the key is just 'id' so should be ok
'password'
//...
protected $table = 'account';
//...
}
<?php # config/auth.php
return array(
'driver' => 'eloquent',
'model' => 'Account',
'table' => 'account',
//...
}
然后登录等我有一个AuthController:
class AuthController extends BaseController
{
public function login($params = null)
{
if (Auth::check()) { // always returns false?
return Redirect::route('home.splash')->with('messaage', 'You are already logged in');
}
//...
if (Auth::attempt($credentials, true)) { // this works fine
return Redirect::route("auth.welcome");
}
/...
}
我还在标题视图中有代码,它引用Auth :: check()来显示登录或注销链接,但它似乎总是返回false,因此登录用户会显示登录链接。 Auth :: attempt确实可以正常登录用户。我错过了什么?
<小时/> 编辑12/18/2013 虽然我发现了2个与之相关的错误,但它们都没有解决问题,但是在这里它们加上了一个来自迁移器的有趣错误,我认为可能值得一个比我看起来更聪明的人。 首先,我的2个相关错误:
1 - 在bootstrap/start.php
中,在envt检测中,我有'testing' => array('*local*')
导致会话无法使用。
2 - 我有一个错位的关闭}
错误地导致我成功登录页面,而实际上没有成功登录。所以在我原来的帖子中,在我说尝试部分正在工作的地方是不正确的。事实并非如此。
这是更有趣的部分。我对nnn_create_account_table
迁移进行了更改,将密码更改为string('password', 64)
,然后尝试运行migrate:refresh
和migrate:reset
,这两个都发出了此错误:
“message”:”Class 'CreateUsersTable' not found”,”file”:”(...project_dir...)\vendor\laravel\framework\src\Illuminate\Database\Migrations\Migrator.php”,”line”:301
然后我对整个项目文件夹进行了搜索,找不到文本&#39; CreateUsersTable&#39;在某些日志中除外。为什么Laravel这样做?这是一个错误吗?
我最终运行了一个简单的migrate
命令(没有刷新或重置命令的一部分)它工作,或者至少,它没有在CLI给出错误,但我的代码使用Auth方法仍然不会工作。
我继续前进,打算使用这个https://github.com/andrew13/Laravel-4-Bootstrap-Starter-Site启动平台并尝试基于它构建我的应用。我会放弃并与用户&#39;而不是&#39;帐户&#39;对于我的用户表。