Osama Kha نشر 17 أبريل 2023 أرسل تقرير نشر 17 أبريل 2023 في الصورة المرفقة اريد تقييد الحقول لو نفرض على الشكل الموجود في الصورة لكن لا يعمل فما هي الطريقة المناسبة وهل تحويل الحقول الى textخيار مناسب 1 اقتباس
0 Mustafa Suleiman نشر 17 أبريل 2023 أرسل تقرير نشر 17 أبريل 2023 لتقييد الحقول، باستطاعتك استخدام العديد من الخيارات المختلفة المتاحة في 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). 1 اقتباس
0 Osama Kha نشر 17 أبريل 2023 الكاتب أرسل تقرير نشر 17 أبريل 2023 حتى عند التحديد لايعمل ويظهر رسالة الخطأ 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 Mustafa Suleiman نشر 17 أبريل 2023 أرسل تقرير نشر 17 أبريل 2023 رسالة الخطأ التي تظهر لك، تعني أن حجم صفوف الجدول يتجاوز الحد الأقصى المسموح به لنوع الجدول الذي يتم استخدامه في قاعدة البيانات. مما يعني أنه يتعين عليك تغيير بعض الحقول من نوع 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. 1 اقتباس
السؤال
Osama Kha
في الصورة المرفقة اريد تقييد الحقول لو نفرض على الشكل الموجود في الصورة لكن لا يعمل فما هي الطريقة المناسبة وهل تحويل الحقول الى textخيار مناسب
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.