اذهب إلى المحتوى
  • 0

التحقق الفريد من Laravel على أعمدة متعددة

Mahmoud Alrashidi

السؤال

لدي عمودين في جدول servers:

ip
hostname

لدي التحقق التالي من العمود ip:

'data.ip' => ['required', 'unique:servers,ip,'.$this->id]

هذا يعمل فقط لعمود IP. ولكن كيف نفعل ذلك ليعمل على العمود hostname، أريد التحقق من صحة data.ip باستخدام أعمدة IP و hostname. لأنه يمكن أن تكون مكررة في الأعمدة IP و hostname ، عندما يكتب المستخدم IP.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يمكنك استخدام Rule :: unique لتحقيق قاعدة التحقق الخاصة بك:

<?php

$messages = [
  'data.ip.unique' => 'Given ip and hostname are not unique',
];

Validator::make($data, [
  'data.ip' => [
    'required',
    Rule::unique('servers')->where(function ($query) use($ip,$hostname) {
      return $query->where('ip', $ip)
        ->where('hostname', $hostname);
    }),
  ],
],
$messages);

أو بهذا الشكل في الإصدارات الجديدة

<?php

$request->validate([
  'ip' => [
    'required',
    Rule::unique('servers')->where(function ($query) use($ip,$hostname) {
      return $query->where('ip', $ip)
        ->where('hostname', $hostname);
    }),
  ],
]);

أو إنشاء صنف request جديد ثم تضع القواعد بنفس الطريقة أعلاه.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

نقوم باستخدام القاعدة Rule لتحقق من عدم تكرار القيمة في الجدولين كالآتي

...
'data.ip' => Rule::unique('servers')->where(function ($query) use ($request) {
   return $query->where('ip', $request->$ip)
      ->where('hostname', $request->hostname);
}
...

ونضيف نموذج القاعدة

use Illuminate\Validation\Rule;

 

تم التعديل في بواسطة Alfakiat
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...