Skip to content

Commit

Permalink
laravel service provider and form validation
Browse files Browse the repository at this point in the history
  • Loading branch information
jnbn committed Feb 10, 2016
1 parent 3824af8 commit 9500067
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 1 deletion.
2 changes: 1 addition & 1 deletion composer.json
@@ -1,7 +1,7 @@
{
"name": "epigra/tckimlik",
"description": "TC Kimlik Numarası Kontrolü ve Doğrulaması",
"keywords": ["tc kimlik","tckn","tc","doğrulama","validation"],
"keywords": ["tc kimlik","tckn","tc","kimlik", "doğrulama","laravel","form","validation"],
"homepage": "https://github.com/epigra/tckimlik",
"license": "MIT",
"authors": [
Expand Down
48 changes: 48 additions & 0 deletions readme.md
Expand Up @@ -35,3 +35,51 @@ $check2 = TcKimlik::validate($data,false); // auto uppercase false
var_dump($check2);
```

#### Laravel Service Provider

`config/app.php` dosyası içerisindeki providers arrayi altına

```
Epigra\TCKimlikServiceProvider::class
```

satırını ekledikten sonra standart Validation kütüphanesi içerisinde

```php
$validator = Validator::make($data, [
'tcno' => 'required|tckimlik|unique:tabloadi,sutunadi',
'isim' => 'required',
'soyisim' => 'required',
'dogumyili' => 'required',
]);
```
şeklinde kullanıldıktan sonra verify fonksiyonu otomatik olarak belirtilen alan için çalışarak algoritmik doğrulamayı gerçekleştirecektir.

Verilen hata mesajını değiştirmek isterseniz `resources/lang/dil/validation.php`dosyası içerisine

```php
'tckimlik' => "Vermek istediğiniz hata mesajı"
```

şeklinde tanımlama yapabilirsiniz.


#### Extending Laravel Validator

Öncesinde `Validator::make` ile tanımlamış olduğunuz validator nesnesini `if ($validator->fails()) `şeklinde kontrol etmeden önce aşağıdaki şekilde tanımlama yapmanız yeterli olacaktır.

```php
$validator->after(function($validator) use ($request) {

$data = array(
'tcno' => 'tckimlikno',
'isim' => 'XXXXX XXX',
'soyisim' => 'XXXXXX',
'dogumyili' => 'XXXX',
);

if (!TcKimlik::validate($data)) {
$validator->errors()->add('formfieldname', 'TC Kimlik Numarası vermiş olduğunuz kimlik bilgilerinizle eşleşmiyor');
}
});
```
36 changes: 36 additions & 0 deletions src/TCKimlikServiceProvider.php
@@ -0,0 +1,36 @@
<?php
namespace Epigra;

use Validator;
use Illuminate\Support\ServiceProvider;
use Epigra\TcKimlik;

class TCKimlikServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
Validator::extend('tckimlik', function($attribute, $value, $parameters, $validator) {
return TcKimlik::verify($value);
});

Validator::replacer('tckimlik', function($message, $attribute, $rule, $parameters) {
if($message=="validation.tckimlik") return "Belirtilen T.C. Kimlik Numarası doğrulanamadı.";
return $message;
});
}

/**
* Register the application services.
*
* @return void
*/
public function register()
{
//
}
}

0 comments on commit 9500067

Please sign in to comment.