Skip to content
This repository was archived by the owner on Jul 16, 2023. It is now read-only.

Commit 6c1beeb

Browse files
author
Bilal Gültekin
committed
make unique/exists rules use jquery-validation's remote rule
It'is converted from pull-15 laravel-4 branch thanks to @jannispl
1 parent a2fd1e2 commit 6c1beeb

File tree

3 files changed

+18
-35
lines changed

3 files changed

+18
-35
lines changed
Lines changed: 1 addition & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,4 @@
11
$.validator.addMethod("regex", function(value, element, regexp) {
22
var regex = new RegExp(regexp);
33
return this.optional(element) || regex.test(value);
4-
}, 'Format is invalid');
5-
6-
$.validator.addMethod("unique", function(value, element, data) {
7-
return laravalidremote(value, element, data);
8-
}, 'Format is invalid');
9-
10-
$.validator.addMethod("exists", function(value, element, data) {
11-
return laravalidremote(value, element, data);
12-
}, 'Format is invalid');
13-
14-
function laravalidremote(value, element, data)
15-
{
16-
var route = $(element).attr('data-route');
17-
var token = $(element).parents('form').find('[name="_token"]').first().val();
18-
var validStatus;
19-
$.ajax({
20-
type: 'POST',
21-
url: route,
22-
data: {validationParameters: data, value: value, _token: token},
23-
success: function(data){
24-
validStatus = data.valid;
25-
},
26-
fail: function(data){
27-
validStatus = false;
28-
},
29-
async:false
30-
});
31-
32-
return validStatus;
33-
}
4+
}, 'Format is invalid');

src/Bllim/Laravalid/Converter/Base/Route.php

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,23 @@ public function convert($name, $parameters)
3232

3333
public function defaultRoute($name, $parameters)
3434
{
35+
$params = Helper::decrypt($parameters['params']);
36+
unset($parameters['params']);
37+
38+
$rules = array();
39+
foreach ($parameters as $k => $v)
40+
{
41+
$rules[$k] = $name . ':' . $params;
42+
}
43+
3544
$validator = \Validator::make(
36-
array('input' => $parameters['value']),
37-
array('input' => $name.':'.Helper::decrypt($parameters['validationParameters']))
45+
$parameters,
46+
$rules
3847
);
3948

40-
return ['valid' => !$validator->fails(), 'messages' => $validator->messages()];
49+
if (!$validator->fails())
50+
return \Response::json(true);
51+
52+
return \Response::json($validator->messages()->first());
4153
}
4254
}

src/Bllim/Laravalid/Converter/JqueryValidation/Rule.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,15 +129,15 @@ public function unique($parsedRule, $attribute, $type)
129129
$param = implode(',', $parsedRule['parameters']);
130130
$encrpytedParam = Helper::encrypt($param);
131131
$route = \Config::get('laravalid.route', 'laravalid');
132-
return ['data-rule-unique' => $encrpytedParam, 'data-route' => $route.'/unique'];
132+
return ['data-rule-remote' => '/' . $route . '/unique?params=' . $encrpytedParam];
133133
}
134134

135135
public function exists($parsedRule, $attribute, $type)
136136
{
137137
$param = implode(',', $parsedRule['parameters']);
138138
$encrpytedParam = Helper::encrypt($param);
139139
$route = \Config::get('laravalid.route', 'laravalid');
140-
return ['data-rule-unique' => $encrpytedParam, 'data-route' => $route.'/exists'];
140+
return ['data-rule-remote' => '/' . $route . '/unique?params=' . $encrpytedParam];
141141
}
142142

143143

0 commit comments

Comments
 (0)