Email unik dalam DB per Klien

Saya menggunakan laravel 5.4 dengan couchbase dengan php 7.1

Di sistem kami, seseorang dapat membuat pengguna baru. Hingga saat ini, bidang email harus unik untuk tabel pengguna database, tidak masalah, kami menggunakan ini dalam permintaan kami

'email'        => 'required|email|unique:users,email,NULL,user_id,datetime_deleted,NULL',

Ini berfungsi dengan baik. Sekarang, kami memiliki permintaan baru pada aplikasi kami bahwa email pengguna harus unik bukan untuk seluruh tabel pengguna, tetapi untuk satu klien, sehingga kami dapat memiliki alamat email yang sama beberapa kali, namun dengan perbedaan di ' bidang client_id' dalam dokumen.

Bagaimana saya bisa memasukkan ini ke Kelas Permintaan saya?


person Paladin    schedule 22.06.2017    source sumber
comment
Periksa jawabannya di sini. Semoga ini bisa membantu Anda   -  person Ruchi    schedule 22.06.2017


Jawaban (1)


Untuk laravel 5.3 ke atas Anda dapat menambahkan klausa Where tambahan untuk validasi unik seperti di bawah ini

'email' => Rule::unique('users')->where(function ($query) {
    $query->where('user_id', Auth::user()->id);
})

jangan lupa menyebutkan use Illuminate\Validation\Rule;

ATAU Coba Untuk laravel 5.2

Sambil memasukkan

'email' => 'unique:users,email,NULL,id,user_id,'.Auth::user()->id,

Sementara pembaruan

'email' => 'unique:users,email,{id of object to edit},id,user_id,'.Auth::user()->id,

Dalam aturan di atas, hanya baris dengan user_id dari Auth::id() yang akan disertakan dalam pemeriksaan unik.

person Ruchi    schedule 22.06.2017