【问题标题】:How to use a validator in Laravel 5.0?如何在 Laravel 5.0 中使用验证器?
【发布时间】:2017-01-23 02:45:30
【问题描述】:

我正在使用 laravel 5.0。我想使用 laravel 验证器,其中我的 'dbo.MS_MENU' 中的 MENU_NAME 列是唯一的。我正在使用 sql server 数据库。我已经制作了如下所示的验证器代码,但仍然出现错误

Connection.php 第 624 行中的 QueryException: SQLSTATE[23000]:[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]违反 UNIQUE KEY 约束“IX_MS_MENU”。无法在对象“dbo.MS_MENU”中插入重复键。重复键值为 (Role)。 (SQL: EXEC dbo.M_INSERT_MENU_PARENT '0', '121', 'Role', 'Menu coba', '0', 'SDF')

    $validator = Validator::make($request->all(), [
        'MENU_NAME' => 'unique:dbo.MS_MENU']);

    if ($validator->fails()) {
        return redirect ('Menu')->withErrors($validator)->withInput();
    }

【问题讨论】:

  • 我认为错误来自数据库端..
  • 如果我将 'unique:dbo.MS_MENU' 更改为 'required' 就可以了。你认为是因为 DB 吗?
  • 那么我们需要在这里指定条件什么时候它是唯一的。

标签: php sql laravel validation laravel-5


【解决方案1】:

你好检查以下代码,

 //Validation using ajax    
public function checkvalidation(Request $request) {

    $data['SUCC_FLAG'] = 0;
    $formdata = $request->only('uname', 'umail', 'dob', 'cno', 'pwd', 'cpwd');
    $rules = ['uname' => 'required|min:2|alpha', 'umail' => 'required|email', 'dob' => 'required|date', 'cno' => 'required|digits:10', 'pwd' => 'required|min:3|max:6', 'cpwd' => 'required|same:pwd'];
    $validator = Validator::make($formdata, $rules);
    if ($validator->fails()) {
        $data['msg'] = $validator->errors();
    } else {
        $data['SUCC_FLAG'] = 1;
        $data['msg'] = "success";
    }
    return json_encode($data);
}

这是我用于我的项目的示例代码,您必须根据您的用途或项目进行更改。

对于使用验证器,您必须在标题中包含 use Validator;

我希望这对你有用

【讨论】:

    【解决方案2】:

    请试试这个

    $validator = Validator::make($request->all(), [
        'MENU_NAME' => 'unique:dbo.MS_MENU,MENU_NAME']);
    

    你需要使用表名和列名

    【讨论】:

    • 还是一样
    猜你喜欢
    • 2021-06-28
    • 2023-03-12
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    • 1970-01-01
    • 2015-09-01
    • 2020-04-30
    相关资源
    最近更新 更多