在表单上创建附加验证,注册默认的laravel

时间:2017-02-01 04:01:21

标签: php laravel laravel-5 frameworks laravel-5.2

此用户(mstanggota)表:

 Schema::create('mstanggota', function (Blueprint $table) {
            $table->increments('id');
            $table->string('no_anggota',10);
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });

Mstbeasiswas表:

Schema::create('mstbeasiswas', function (Blueprint $table) {
            $table->increments('id');
            $table->string('no_anggota',10)->unique();
            $table->string('nm_anak',25);
            $table->string('kt_lahir',25);
            $table->date('ttl');
            $table->String('nm_skl',50);
            $table->String('st_pend',6);
            $table->String('lbg_pend',6);
            $table->String('prov_skl');
            $table->String('jenkel',9);
            $table->integer('k_umum');
            $table->integer('k_khusus');
            $table->integer('score')->nullable();
            $table->boolean('status')->default(0);
            $table->string('ket',250)->nullable();
            $table->string('img1',50)->nullable();
            $table->string('img2',50)->nullable();
            $table->string('img3',50)->nullable();
            $table->timestamps();
        });

我想进行额外的验证。如果表mstbeasis上不存在no_anggota则用户无法注册,有什么可以帮助我? :(

注册表单视图 - > enter image description here

1 个答案:

答案 0 :(得分:0)

无论你选择哪种方式,Laravel肯定能正常工作。传统请求和AJAX请求都被接受。

您可以在控制器中进行验证或创建另一个类。我更喜欢在这种情况下的第二个避免让控制器可怕和不清楚。

我假设您已阅读the chapter of Validation

1。通过工匠命令制作课程

$ php artisan make:request UserRegisterRequest

2。编辑验证规则(与您的一起更改)

/**
 * Get the validation rules that apply to the request.
 *
 * @return array
 */
public function rules()
{
    return [
        'name' => 'required|max:10',
        'nickname' => 'required|max:20',
        'email' => 'required|email|max:255|unique:users',
        'password' => 'required|min:6',
        'permission' => 'required|numeric',
    ];
}

3。为每个字段设置名称(用您的语言更改)

public function attributes ()
{
    return [
        'name' => '姓名',
        'nickname' => '綽號',
        'email' => 'E-Mail',
        'password' => '密碼',
        'permission' => '權限',
    ];
}

4。如果错误

则响应
public function response(array $errors) {
    return response()->json([
        'status' => false,
        'errors' => $errors
    ]);
}

5。在进入控制器之前验证每个请求

public function account_add(UserRegisterRequest $request) {

    // pass the validation
}

传统请求和AJAX之间的区别在于您可以返回redirection with errorsJSON。在这种情况下,我们选择JSON而不是重定向。这样您就可以在前端处理错误。