在laravel 5.5中防止3列中的多个值

时间:2017-10-08 12:42:09

标签: php mysql relational-database laravel-eloquent laravel-5.5

我在这种情况下遇到问题,我不知道如何防止3列中的多个值,我的意思是如果3列有多个值则不会插入数据库,例如我有 Krs 表中有这样的数据:

  

| id | nim |咬合| kode_mk
   | 1 | 134 | 154 | 543

当有人插入如下数据时,

和laravel将忽略此数据:

  

nim = 134,nip = 154,kode_mk = 543 laravel不会插入并给出   atttention

但是laravel会接受如下数据:

  

nim = 1132,nip = 154,kode_mk = 543 laravel将接受并保存到数据库   nim = 134,nip = 1984,kode_mk = 543 laravel将接受并保存到数据库   nim = 1345,nip = 154,kode_mk = 543 laravel将接受并保存到数据库

我有一个这样的表格,我想要阻止黑圈中的数据:

enter image description here

这是我的 Krs.php

   protected $fillable = ['nim','nip','kode_mk','absen','uts','uas'];
protected $table = 'krs';

public function mahasiswas(){
    return $this->belongsToMany('App\Mahasiswa','id');
}

public function dosens(){
    return $this->belongsToMany('App\Dosen','id');
}

public function makuls(){
    return $this->belongsToMany('App\Matakuliah','id');
}

这是我的 KrsController.php

public function store(KrsRequest $request)
{

    $krs = new Krs([
        'nim' => $request->get('nim'),
        'nip' => $request->get('nip'),
        'kode_mk' => $request->get('kode_mk'),
        'absen' => $request->get('absen'),
        'uts' => $request->get('uts'),
        'uas' => $request->get('uas')
    ]);

    if ($krs->save()) {
        session()->flash('status','done_all');
        session()->flash('pesan','Data berhasil disimpan');
    }else{
        session()->flash('status','clear');
        session()->flash('pesan','Data gagal disimpan');
    }

    return redirect('Akademik/Krs/create');
}

我不知道如何用英语解释它,抱歉我的语法不好

编辑1表格结构

enter image description here

1 个答案:

答案 0 :(得分:0)

在Krs迁移中,将字段设置为要求值是唯一的。例如:

$table->string('kode_mk')->unique();