【问题标题】:Problems with Sentry::authenticate() in Laravel 4Laravel 4 中 Sentry::authenticate() 的问题
【发布时间】:2015-05-04 16:59:46
【问题描述】:

当我尝试使用 sentry::authenticate() 时,它会在我的浏览器中显示“哎呀,看起来有问题”。我不知道这是从哪里来的。 这是我的路线:

Route::post('login',function(){
   $credentials= array('email'=>Input::get('email'), 'password' =>Input::get('password'));
   $user=sentry::authenticate('$credentials,false);
});

但是当我点击登录按钮时这不起作用

【问题讨论】:

  • 在 app/config/app.php 中将 'debug' 设置为 true 以查看实际的错误消息,而不是那个“哎呀”屏幕。此外,Sentry 应该大写(Sentry::authenticate()),并且您的方法调用中有一个额外的单引号。不过,一旦您打开调试,您(和我们)将更容易找到问题。
  • 我刚刚打开调试现在这是它说的错误::: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'syn.throttle' doesn't exist (SQL: select * from 'throttle' where 'user_id'= 1 and ('ip_address' = ::1 or 'ip_address' is null)limit 1)...这就是它所说的,但我没有任何名为throttle的表。所以我不知道它是从哪里看到的
  • 这就是它所抱怨的:你没有节流表。油门表应该是作为 Sentry 安装过程的一部分创建的。 Sentry 提供了四个迁移来设置用户、组、users_groups 和限制表。您是否进行了这些迁移?
  • 四个迁移??我刚刚在迁移中这样做了。: php artisan migrate:make create_users_table --create=users.... 还有什么我应该做的吗?
  • 是的。 Sentry 在此处列出了将其软件包安装到 Laravel 的步骤:https://cartalyst.com/manual/sentry/2.1#laravel-4。他们提供了要使用的迁移,以便您的数据库拥有他们需要的所有表和字段。如果您愿意,您可以稍后将字段添加到这些表中,但您需要开始使用它们的迁移。

标签: php laravel laravel-4 cartalyst-sentry


【解决方案1】:

问题已在 cmets 中解决。在此处发布的摘要作为未来用户的答案。

主要问题是 Sentry 包的迁移尚未运行。因此,throttle table 不存在,导致代码抛出异常。

【讨论】:

    【解决方案2】:

    基本上,我发现 laravel 4 附带了自己的迁移表,并且需要先运行这些迁移表,然后才能在数据库中创建表。 只需运行以下代码:

    php artisan migrate: --package cartalyst/sentry.

    这将为您解决问题。

    感谢帕特里克斯。

    【讨论】:

      猜你喜欢
      • 2014-03-31
      • 2013-06-24
      • 2014-01-26
      • 2013-05-25
      • 1970-01-01
      • 1970-01-01
      • 2014-04-28
      • 1970-01-01
      • 2013-01-07
      相关资源
      最近更新 更多