Hafsa Aly نشر 17 يونيو 2021 أرسل تقرير نشر 17 يونيو 2021 (معدل) السلام عليكم ورحمه الله كيف اقوم بعمل إضافة حقول في ال registration form في laravel 7 وهذه الحقول تكون selection أو checkbox تجلب بياناتها من الdb تم التعديل في 17 يونيو 2021 بواسطة Wael Aljamal توضيح السؤال 1 اقتباس
0 Wael Aljamal نشر 17 يونيو 2021 أرسل تقرير نشر 17 يونيو 2021 عندما نريد تمرير عدة قيم من HTML نضع أقواس مربعة [] مع اسم الخاصية name; المثال خاص ب category.. <div class="form-group"> <label><strong>Category :</strong></label><br> <label><input type="checkbox" name="category[]" value="Laravel"> Laravel</label> <label><input type="checkbox" name="category[]" value="JQuery"> JQuery</label> <label><input type="checkbox" name="category[]" value="Bootstrap"> Bootstrap</label> <label><input type="checkbox" name="category[]" value="Codeigniter"> Codeigniter</label> <label><input type="checkbox" name="category[]" value="JQuery UI"> JQuery UI</label> </div> يمكنك ملاحظة: name="category[]" ضمن ملف التهجير، يمكن تحديد نوع القيمة ك string: <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreatePostsTable extends Migration { public function up() { Schema::create('posts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('category'); $table->longText('description'); $table->timestamps(); }); } } ثم في model نحدد دالة لإسناد القيمة و جلبها.. <?php namespace App; use Illuminate\Database\Eloquent\Model; class Post extends Model { protected $fillable = ['name','category','description']; public function setCategoryAttribute($value) { $this->attributes['category'] = json_encode($value); } public function getCategoryAttribute($value) { return $this->attributes['category'] = json_decode($value); } } حيث كما تلاحظين، نتبع العرف في التسمية في الدوال ليكون getCategoryAttribute - setCategoryAttribute ونتعامل مع المتغيرات كغرض JSON الذي يتم تخزينه كنص في قاعدة البيانات. باقِ الأجزاء تعمل بالطريقة التقليدية بدون تعديل فقط تم الاعتماد على الدالتين ضمن model لعمل طبقة وسيطة و تقوم باتحويل ل JSON. 1 اقتباس
0 سمير عبود نشر 17 يونيو 2021 أرسل تقرير نشر 17 يونيو 2021 الأمر بسيط فقط قومي بإتباع بعض الخطوات سأشرحها لك بإستخدام مثال: سنُضيف لإستمارة التسجيل نوع المُستخدم gender: نُضيف الحقل gender إلى جدول المستخدمين: أولا نُنشئ ملف تهجير لإضافة الحقل: php artisan make:migration add_gender_to_users نفتح ملف التهجير و نضيف الحقل للتابع up: $table->enum('gender', ['male', 'female', 'others'])->default('male'); و في التابع down نُضيف: $table->dropColumn('gender'); نقوم بتنفيذ أمر التهجير: php artisan migrate نضيف الحقل لإستمارة تسجيل الدخول في الملف register.blade: <div class="form-group row"> <label for="gender" class="col-md-4 col-form-label text-md-right">{{ __('Gender') }}</label> <div class="col-md-6"> <select class="form-control @error('gender') is-invalid @enderror" name="gender" id="gender" required> <option value="">Select Your Gender</option> <option value="male" {{ old('gender') == 'male' ? 'selected' : '' }}>Male</option> <option value="female" {{ old('gender') == 'female' ? 'selected' : '' }}>Female</option> <option value="others" {{ old('gender') == 'others' ? 'selected' : '' }}>Others</option> </select> @error('gender') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror </div> </div> نضيف الحقل gender لمصفوفة fillable في النموذج: protected $fillable = [ 'name', 'email', 'password', 'gender' ]; بعد ذلك نتحقق من الحقل في المتحكم RegisterController و نضيف الحقل في إنشاء السجل: 'gender' => ['required', 'string', 'in:male,female,others'], و في الإنشاء: protected function create(array $data) { return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'gender' => $data['gender'], // إضافة الحقل 'password' => Hash::make($data['password']), ]); } و هكذا بنفس الطريقة يُمكنك إضافة حقول أخرى. 1 اقتباس
0 Hafsa Aly نشر 18 يونيو 2021 الكاتب أرسل تقرير نشر 18 يونيو 2021 بتاريخ On 6/17/2021 at 19:54 قال عبود سمير: الأمر بسيط فقط قومي بإتباع بعض الخطوات سأشرحها لك بإستخدام مثال: سنُضيف لإستمارة التسجيل نوع المُستخدم gender: نُضيف الحقل gender إلى جدول المستخدمين: أولا نُنشئ ملف تهجير لإضافة الحقل: php artisan make:migration add_gender_to_users نفتح ملف التهجير و نضيف الحقل للتابع up: $table->enum('gender', ['male', 'female', 'others'])->default('male'); و في التابع down نُضيف: $table->dropColumn('gender'); نقوم بتنفيذ أمر التهجير: php artisan migrate نضيف الحقل لإستمارة تسجيل الدخول في الملف register.blade: <div class="form-group row"> <label for="gender" class="col-md-4 col-form-label text-md-right">{{ __('Gender') }}</label> <div class="col-md-6"> <select class="form-control @error('gender') is-invalid @enderror" name="gender" id="gender" required> <option value="">Select Your Gender</option> <option value="male" {{ old('gender') == 'male' ? 'selected' : '' }}>Male</option> <option value="female" {{ old('gender') == 'female' ? 'selected' : '' }}>Female</option> <option value="others" {{ old('gender') == 'others' ? 'selected' : '' }}>Others</option> </select> @error('gender') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror </div> </div> نضيف الحقل gender لمصفوفة fillable في النموذج: protected $fillable = [ 'name', 'email', 'password', 'gender' ]; بعد ذلك نتحقق من الحقل في المتحكم RegisterController و نضيف الحقل في إنشاء السجل: 'gender' => ['required', 'string', 'in:male,female,others'], و في الإنشاء: protected function create(array $data) { return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'gender' => $data['gender'], // إضافة الحقل 'password' => Hash::make($data['password']), ]); } و هكذا بنفس الطريقة يُمكنك إضافة حقول أخرى. شكرا لك . عندي سؤال اخر في نفس الموضوع اريد اضافة checkbox في ال registeration form لاختيار هوايات مع انني اريد معرفة اذا تم اختيار اكثر من هواية كيف يتم حفظها في الdb ايضا اقتباس
0 سمير عبود نشر 18 يونيو 2021 أرسل تقرير نشر 18 يونيو 2021 بتاريخ 17 دقائق مضت قال Hafsa Aly: شكرا لك . عندي سؤال اخر في نفس الموضوع اريد اضافة checkbox في ال registeration form لاختيار هوايات مع انني اريد معرفة اذا تم اختيار اكثر من هواية كيف يتم حفظها في الdb ايضا لماذا لا تُفكرين في عمل نموذج آخر مثلا Hobby و الربط بينه و بين نموذج User بعلاقة many to many اي كل مستخدم يُمكن أن يكون له عدة هوايات و الهواية يُمكن أن تنتمي لعدة مُستخدمين، و بهذا الشكل تخزين البيانات سيكون أسهل و البحث و الإستعلام بخصوص الهوايات في المستقبل سيكون أسهل اقتباس
السؤال
Hafsa Aly
السلام عليكم ورحمه الله
كيف اقوم بعمل إضافة حقول في ال registration form في laravel 7 وهذه الحقول تكون selection أو checkbox تجلب بياناتها من الdb
تم التعديل في بواسطة Wael Aljamalتوضيح السؤال
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.