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

اواجه مشكلة في تحديد طول الحقل في laravel

Osama Kha

السؤال

في الصورة المرفقة اريد تقييد الحقول لو نفرض على الشكل الموجود في الصورة لكن لا يعمل فما هي الطريقة المناسبة وهل تحويل الحقول الى textخيار مناسب

uni_id.png

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

Recommended Posts

  • 0

لتقييد الحقول، باستطاعتك استخدام العديد من الخيارات المختلفة المتاحة في Laravel، ومنها استخدام الخيار "required" لتحديد أن الحقل إلزامي، واستخدام الخيار "max" لتحديد الحد الأقصى لعدد الحروف المسموح بها في الحقل.

مثلاً، لتحديد أن حقل "uni_name" إلزامي ولا يمكن أن يتجاوز 30 حرفًا، على النحو التالي:

$table->string('uni_name', 30)->required()->max(30);

وبالمثل، يمكنك تحديد الخيارات المناسبة للحقول الأخرى في الجدو، ولا يلزم تحويل الحقول إلى خيار النص "text" إذا كانت الحدود الحالية تفي بالغرض.

إلى جانب الخيار "required"، يوجد العديد من الخيارات الأخرى المتاحة في Laravel لتقييد الحقول، وبعض الخيارات الشائعة تشمل:

  • min: لتحديد الحد الأدنى لعدد الحروف المسموح بها في الحقل.
  • max: يستخدم لتحديد الحد الأقصى لعدد الحروف المسموح بها في الحقل. 
  • unique: لتحديد أن القيمة المدخلة يجب أن تكون فريدة في الجدول.
  • email: للتحقق من أن القيمة المدخلة هي عنوان بريد إلكتروني صالح.
  • numeric: للتحقق من أن القيمة المدخلة هي قيمة رقمية صالحة.
  • date: للتحقق من أن القيمة المدخلة هي تاريخ صالح.
  • in: لتحديد مجموعة من القيم المسموح بها للحقل.

كمثال، لتحديد أن حقل "uni_Goals" يجب أن لا يتجاوز 3000 حرف، يمكن استخدام الكود التالي:

$table->string('uni_Goals', 3000)->max(3000);

ويجب أن يتم تمرير قيمة المدخلات المسموح بها للخيار max بالإضافة إلى القيمة القياسية لحد الحقل (في هذه الحالة 3000).

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

  • 0

حتى عند التحديد لايعمل ويظهر رسالة الخطأ

 SQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs (Connection: mysql, SQL: create table `universities` (`university_id` smallint unsigned not null auto_increment primary key, `uni_name` varchar(30) not null, `Uni_vision` varchar(3000) not null, `uni_Mission` varchar(3000) not null, `uni_Goals` varchar(3000) not null, `About_university` varchar(8000) not null,

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

  • 0

رسالة الخطأ التي تظهر لك، تعني أن حجم صفوف الجدول يتجاوز الحد الأقصى المسموح به لنوع الجدول الذي يتم استخدامه في قاعدة البيانات.

مما يعني أنه يتعين عليك تغيير بعض الحقول من نوع VARCHAR إلى أنواع TEXT أو BLOB، حيث يتم تخزين هذه الأنواع من الحقول بشكل مختلف ولا تساهم في زيادة حجم الصف.

مثلاً، تغيير حقول Uni_vision، uni_Mission و uni_Goals إلى أنواع TEXT، بالإضافة إلى تحويل الحقل About_university إلى نوع LONGTEXT، حيث تسمح هذه الأنواع بتخزين كميات كبيرة من البيانات.

الكود التالي يوضح كيفية إجراء هذه التغييرات:

$table->unsignedSmalllnteger('university_id', true)->unigid();
$table->string('uni_name', 30);
$table->text('Uni_vision');
$table->text('uni_Mission');
$table->text('uni_Goals');
$table->longText('About_university');
$table->string('Rector_Speech', 4000);
$table->string('uni_Location', 460);
$table->string('uni_Area', 400);

تأكد من إجراء التغييرات المطلوبة في قاعدة البيانات وفي ملفات الترحيل (migration files) قبل إعادة تشغيل تطبيق Laravel.

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...