2017-01-22 4 views
0

У меня есть две разные таблицы с 2 столбцами [код, статус] каждый и код столбца содержит уникальный код в целых числах (392,21,2981,2743, ..etc), и они составляют около 100 в каждой таблице, тогда как статус указывает, были ли эти коды использованы или нет.Проверка 2 уникальных кодов на таблицу, а затем регистрация формы

Я хочу, чтобы форма быть только представлены, когда оба предоставленных кодов от пользователя совпадают коды в этих 2 таблиц и имеют статус «0»

я мог бы создать очень простую проверку в контроллере, но что dosen't имеет большой смысл, что я только что объяснил

public function formValidationPost(Request $request) 
    { 

     $this->validate($request,[ 
       'name' => 'required|min:5|max:35', 
       'email' => 'required|email|unique:users', 
       'mobile' => 'required|numeric', 
       'code_a' => 'bail|required|exists:code_a,code', 
       'code_b' => 'bail|required|exists:code_b,code' 
      ],[ 
       'name.required' => ' The name field is required.', 
       'name.min' => ' The name must be at least 5 characters.', 
       'name.max' => ' The name may not be greater than 35 characters.', 
      ]); 

     dd('You successfully added all fields.'); 
    } 

так с моими правилами проверок, я хочу, чтобы иметь возможность убедиться, что:

  • Форма не не представляет, если и предоставленные коды сопоставляются в базе данных (code_a [table] и code_b [table]), а их статус должен быть «0»

Надеюсь, это имеет смысл.

Благодаря

+0

Что в, сущности, это вопрос? Ваш пример, похоже, достигает именно того, что вы хотите. – Ohgodwhy

+0

Он работает, но я не мог использовать предложение where, чтобы проверить статус 0 – NMindz

ответ

1

Reference

use Illuminate\Validation\Rule; 

$this->validate($request, 
[... 
    'mobile' => 'required|numeric', 
    'code_a' => [ 
     'bail', 
     'required', 
     Rule::exists('code_a', 'code')->where(function($query) { 
      $query->where('status', 0); 
     }) 
    ], 
    'code_b' => [ 
     'bail', 
     'required', 
     Rule::exists('code_b', 'code')->where(function($query) { 
      $query->where('status', 0); 
     }) 
    ] 
], 
[...]); 
+0

Класс 'Illuminate \ Validation \ Rule' не найден, я искал в google, но не нашел никакой помощи – NMindz

+0

Запустите 'composer update' и попробуйте –

+0

Спасибо большое за это, он работал – NMindz