【问题标题】:Laravel validation for unique in table within a few rows?Laravel 验证几行内唯一的表?
【发布时间】:2015-07-11 06:05:21
【问题描述】:

我正在尝试将数据添加到名为 students 的表中。

在进入之前,我需要验证学生卷号。通过表格插入。此卷号在特定类别中应该是唯一的。

我将如何使用 Laravel 验证规则来验证这种唯一性?

students 表包含以下列:

ID、STUDNAME、STUDCLASS、ROLLNO、ADMINNO

其中名为 STUDCLASS 的字段是类 ID。

所以这个 ROLLNO 字段在具有相同 STUDCLASS 值的行中应该是唯一的。

我将如何在 Laravel 中进行此验证?

【问题讨论】:

  • 为什么你有 laravel-4 和 laravel-5 标签?你用的是哪个版本?
  • 我需要标记至少 4 个区域。所以我选择了 Laravel 4、Laravel-5、Laravel 和 PHP。否则我将如何发布只有一个标签。??
  • 你在干什么?为什么至少需要 4 个标签? Laravel-4 表示您使用的是 Laravel 版本 4,Laravel-5 表示您使用的是 Laravel 版本 5。您不能同时使用两者,我已经将它们都删除了,直到您说明您使用的是什么版本。
  • 我正在使用 Laravel 4

标签: php laravel laravel-4


【解决方案1】:

您可以按如下方式使用验证器。条件将添加为 where 子句 where STUDCLASS = Input::get('studclass')

      $validator = Validator::make(array(
                    'roll_number' => Input::get('roll_number'),

                        ), array(                        
                    'roll_number' => 'required|unique:tbl_students,roll_number,NULL,id,STUDCLASS,'.Input::get('studclass')
        ));



       if ($validator->fails()) {

           echo  $validator->messages()->first();

        } 

【讨论】:

  • 这是我添加的 'studrollno'=>'required|numeric|unique:tbl_students,studrollno,studcls'.$clsid, .但它不起作用
  • 您忘记了中间的空值。条件以这种方式起作用。唯一的:表,列,除了,idColumn
  • 我像这样添加了 NULL...'studrollno' => 'required|unique:tbl_students,studrollno, NULL, studcls,'.$clsid, .. 但是我收到一个错误,'未定义offset: 1',请问是什么原因?
  • 'studrollno' => 'required|unique:tbl_students,studrollno, NULL, id, studcls,'.$clsid ..... 在中间添加 id 字段。 id 是表的主键。
  • 我更改为您的回复。 'studrollno' => 'required|unique:wys_students,studrollno, NULL, id, studcls,'.$clsid,... 但是我收到错误.. 找不到列:1054 'where 子句'中的未知列'id' (SQL: select count(*) as aggregate from tbl_students where studrollno = 1 and `id` NULL and `studcls` = 2)
猜你喜欢
  • 2022-12-05
  • 2016-05-31
  • 2018-07-29
  • 1970-01-01
  • 2022-01-04
  • 2022-01-12
  • 2017-10-11
  • 1970-01-01
  • 2021-02-07
相关资源
最近更新 更多