【问题标题】:Laravel 4 validation says column not foundLaravel 4 验证说找不到列
【发布时间】:2013-12-01 03:19:50
【问题描述】:

这是我第一次使用 Laravel 4。我正在发送一些输入。输入中有一封电子邮件。我正在尝试检查它是否已经存在。如果它比它应该发送一些错误。但它是说我的表中没有这样的列。

这是我的代码:

$rules = array(
        'email' => array('required', 'email', 'unique:users, user_email'),
        'password' => array('required', 'min:7', 'unique:users, user_password')
    );
 $validation = Validator::make(Input::all(), $rules);
  if($validation->fails())
{
   $messages = $validation->messages();

    dd($messages);
}

我的表名是用户,列名是 user_email 和 user_password。输入字段的名称是电子邮件。

【问题讨论】:

  • 我对 L4 仍然没有太多经验,但您是否考虑过删除逗号和 user_email/user_password 之间的空格?我正在阅读的文档没有指定这样的空间。
  • @Daedalus,让我检查一下。
  • 非常感谢。问题解决了。
  • 另一个注意事项:如果您正在开发一个典型的应用程序并且正确地散列您的密码,您应该要求密码在您的数据库中是唯一的。这不仅不是必需的,而且是一个小的安全问题。在您的网站上注册时,如果我收到一条消息,说我尝试的密码在您的数据库中不是唯一的,这让我知道您数据库中的 some 用户拥有该密码。然后考虑到您只是使用电子邮件作为用户名,我可以轻松地根据您的密码重置功能在现有电子邮件集合上尝试该密码。
  • @SajanParikh,非常感谢。我从来没有想过。

标签: php database validation laravel-4


【解决方案1】:

阅读validation rules 的文档后,我没有看到列名和列信息之间有任何空格。可能没有从数据中删除空格,这可能是您的错误的原因。消除间距问题,它应该可以工作:unique:users,user_email,etc

(注意,这是基于我的评论的扩展答案,它解决了用户的问题)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 2014-03-09
    • 2014-12-23
    • 2014-08-08
    • 1970-01-01
    • 2013-09-09
    • 2015-06-28
    相关资源
    最近更新 更多