Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách thêm quy tắc trình xác thực các trường duy nhất được kết hợp trong Laravel 4

Bạn có thể viết quy tắc trình xác thực tùy chỉnh. Quy tắc có thể trông giống như sau:

'unique_multiple:table,field1,field2,field3,...,fieldN'

Mã cho điều đó sẽ trông giống như sau:

Validator::extend('unique_multiple', function ($attribute, $value, $parameters)
{
    // Get table name from first parameter
    $table = array_shift($parameters);

    // Build the query
    $query = DB::table($table);

    // Add the field conditions
    foreach ($parameters as $i => $field)
        $query->where($field, $value[$i]);

    // Validation result will be false if any rows match the combination
    return ($query->count() == 0);
});

Bạn có thể sử dụng bao nhiêu trường tùy thích cho điều kiện, chỉ cần đảm bảo giá trị được truyền vào là một mảng chứa các giá trị của các trường theo thứ tự như đã khai báo trong quy tắc xác thực. Vì vậy, mã trình xác thực của bạn sẽ trông giống như sau:

$validator = Validator::make(
    // Validator data goes here
    array(
        'unique_fields' => array('examdate_value', 'batch_value', 'chapter_value')
    ),
    // Validator rules go here
    array(
        'unique_fields' => 'unique_multiple:exams,examdate,batch,chapter'
    )
);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn ngày / giờ hiện tại bằng now () vào một trường bằng MySQL / PHP

  2. Chế nhạo truy vấn chèn vào Cơ sở dữ liệu MySQL bằng Moq

  3. Làm thế nào để cập nhật hàng loạt dữ liệu mysql với một truy vấn?

  4. Làm thế nào để thực thi một lệnh MySQL từ một tập lệnh shell?

  5. Java PreparedStatement và TRÊN CẬP NHẬT KHÓA DUPLICATE:làm cách nào để biết liệu hàng đã được chèn hoặc cập nhật hay chưa?