Laravel 5.1中的复合密钥验证


Composite Key validation in Laravel 5.1

我正在Laravel 5.1中尝试以下查询

Select * from tblSubCategory 
Where SubCategoryID != 1 and CategoryID = 1 and SubCategory = 'test data';

下面是我在Laravel中的代码

$v = 'Validator::make($request->all(), [
    'SubCategory' => 'required|max:100|min:5|unique:tblsubcategory,SubCategory,'
        .''.$request->input('CategoryID')
        .',CategoryID,SubCategoryID,'.$request->input('SubCategoryID')
]);

上面的表达式正在生成下面的查询

select count(*) as aggregate from `tblsubcategory` 
where `SubCategory` = 'under website1' and `CategoryID` <> 1 and `SubCategoryID` = 1

唯一密钥

UNIQUE KEY `UK_tblSubCategory_SubCategory_CategoryID` (`CategoryID`,`SubCategory`);

方法:1:与Laravel:5兼容。*

在命令行composer require felixkiss/uniquewith-validator:2.*

config/app.php:中将以下内容添加到您的providers array

'providers' => array(
    'Felixkiss'UniqueWithValidator'UniqueWithValidatorServiceProvider',
),
$v = 'Validator::make($request->all(), [
    'SubCategory' => 'required|max:100|min:5|unique_with:tblsubcategory,CategoryID',
    'CategoryID' => 'required',
]);

方法:2

$v = 'Validator::make($request->all(), [
    'SubCategory' => 'unique:tblsubcategory,SubCategory,'
                     .$request->input('SubCategoryID') 
                     .',SubCategoryID,CategoryID,'
                     .$request->input('CategoryID')
]);
if ($v->fails()) {
    return 'Redirect::back()
                ->withErrors($v)
                ->withInput();
}