علي العبدالله2 نشر 4 يونيو 2021 أرسل تقرير نشر 4 يونيو 2021 كيف يمكنني انشاء بيانات تلقائية داخل بيانات مثال على تطبيق ادارة المهام : عند اضافة مشروع جديد اريد اضافة مهمات تلقائية اقتباس
0 Adnane Kadri نشر 4 يونيو 2021 أرسل تقرير نشر 4 يونيو 2021 يمكنك فعل هذا عن طريق مفهومي معمل النماذج Model Factories و بذر البيانات Database seeding . ستحتاج إنشاء معمل نموذج جديد عن طريق الأمر : php artisan make:factory TaskFactory -m Task ثم نحتاج لإستعمال مكتبة faker لتوليد بيانات حقول تلقائية على هذا النحو في ملف TaskFactory.php ضمن التابع definition : return [ 'name' => $this->faker->name, 'email' => $this->faker->unique()->email, 'contact_number' => $this->faker->phoneNumber, ]; سنحتاج أيضا إلى إضافة المعمل إلى ملف البذر DatabaseSeeder.php إلى التابع run : App\Models\Task::factory(10)->create(); ثم أخيرا يمكننا تشغيل أمر البذر : php artisan db:seed كما يمكن تشغيله بعد أمر التهجير على هذا النحو : php artisan migrate:fresh --seed 3 اقتباس
0 سمير عبود نشر 4 يونيو 2021 أرسل تقرير نشر 4 يونيو 2021 بعد إنشاء معمل (factory) لكل من النموذجين Project و Task و ملء الحقول الأساسية بالإضافة إلى عمل العلاقات بين النموذجين بإمكانك القيام بالتالي: Project::factory() ->has(Task::factory()->count(10)) ->count(5) ->create(); في الملف DatabaseSeeder مع إستدعاء الكلاسات في الأعلى. ثم تنفيذ امر البذر الذي سيُنشئ 5 مشاريع و لكل مشروع 10 مهمات. 1 اقتباس
0 علي العبدالله2 نشر 5 يونيو 2021 الكاتب أرسل تقرير نشر 5 يونيو 2021 شكراً لكم لاكني اريد ان يقوم بالبذر تلقائياً مثلاً اقوم انا بتحديد مهمة عامة وعندما يقوم المستخدم بإنشاء مشروع تلقائيا عند انشاء المشروع يتم انشاء المهمة التي انا وضعتها اقتباس
0 سمير عبود نشر 5 يونيو 2021 أرسل تقرير نشر 5 يونيو 2021 بتاريخ 46 دقائق مضت قال علي العبدالله: شكراً لكم لاكني اريد ان يقوم بالبذر تلقائياً مثلاً اقوم انا بتحديد مهمة عامة وعندما يقوم المستخدم بإنشاء مشروع تلقائيا عند انشاء المشروع يتم انشاء المهمة التي انا وضعتها هناك عدة طرق للقيام بالأمر: في المتحكم ProjectController عند إنشائك للمشروع في التابع store تستقبل غرض المشروع في متغير و تُنشئ مهمة عامة لهذا المشروع و بهذا الشكل يُصبح عند إنشاء أي مشروع تُنشأ له مهمة عامة: <?php public function store(Request $request) { // ... $project = Project::create($data); $project->tasks()->create(['body' => "مهمة عامة"]); // .. } في النموذج Project تُعيد تعريف الدالة boot ثم تقوم بالتسمع على حدث created بهذا الشكل: <?php protected static function boot() { parent::boot(); static::created(function (Project $project) { $project->tasks()->create(['body' => "مهمة عامة"]); }); } الآن عند إنشاء مشروع تلقائياً يتم إنشاء مهمة له و ستأخذ المهمة في الحقل body مهمة عامة. يُمكن عمل الموضوع بإستعمال المُراقبات (observers)، يُمكن أيضاً عمل الأمر بإستعمال الأحداث (events) و المُتسمعات (listeners) أدعوك للإطلاع على هاذين الأمر و عمل ما تريد القيام به بإستعمال هاتين الطريقتين للتوسع أكثر و التمرن. 2 اقتباس
0 علي العبدالله2 نشر 5 يونيو 2021 الكاتب أرسل تقرير نشر 5 يونيو 2021 بتاريخ 2 دقائق مضت قال عبود سمير: هناك عدة طرق للقيام بالأمر: في المتحكم ProjectController عند إنشائك للمشروع في التابع store تستقبل غرض المشروع في متغير و تُنشئ مهمة عامة لهذا المشروع و بهذا الشكل يُصبح عند إنشاء أي مشروع تُنشأ له مهمة عامة: <?php public function store(Request $request) { // ... $project = Project::create($data); $project->tasks()->create(['body' => "مهمة عامة"]); // .. } في النموذج Project تُعيد تعريف الدالة boot ثم تقوم بالتسمع على حدث created بهذا الشكل: <?php protected static function boot() { parent::boot(); static::created(function (Project $project) { $project->tasks()->create(['body' => "مهمة عامة"]); }); } الآن عند إنشاء مشروع تلقائياً يتم إنشاء مهمة له و ستأخذ المهمة في الحقل body مهمة عامة. يُمكن عمل الموضوع بإستعمال المُراقبات (observers)، يُمكن أيضاً عمل الأمر بإستعمال الأحداث (events) و المُتسمعات (listeners) أدعوك للإطلاع على هاذين الأمر و عمل ما تريد القيام به بإستعمال هاتين الطريقتين للتوسع أكثر و التمرن. هل يمكن تحديد عدد مثلا اريد انشاء 5 هل يعمل عليه count(5) او اقوم بتكرار الامر اقتباس
0 سمير عبود نشر 5 يونيو 2021 أرسل تقرير نشر 5 يونيو 2021 بتاريخ الآن قال علي العبدالله: هل يمكن تحديد عدد مثلا اريد انشاء 5 هل يعمل عليه count(5) او اقوم بتكرار الامر نعم بإمكانك بدل إنشاء مهمة واحدة إستخدام المعمل (factory) و إنشاء الكم الذي تريده، اقتباس
0 علي العبدالله2 نشر 5 يونيو 2021 الكاتب أرسل تقرير نشر 5 يونيو 2021 (معدل) SQLSTATE[HY000]: General error: 1364 Field 'task' doesn't have a default value (SQL: insert into `tasks` (`project_id`, `updated_at`, `created_at`) values (13, 2021-06-05 12:01:11, 2021-06-05 12:01:11)) تم التعديل في 5 يونيو 2021 بواسطة علي العبدالله اقتباس
0 سمير عبود نشر 5 يونيو 2021 أرسل تقرير نشر 5 يونيو 2021 بتاريخ 15 دقائق مضت قال علي العبدالله: SQLSTATE[HY000]: General error: 1364 Field 'task' doesn't have a default value (SQL: insert into `tasks` (`project_id`, `updated_at`, `created_at`) values (13, 2021-06-05 12:01:11, 2021-06-05 12:01:11)) قم بتغيير الحقل من body للحقل الموافق لديك. أعتقد أنه task حسب رسالة الخطأ اقتباس
0 علي العبدالله2 نشر 5 يونيو 2021 الكاتب أرسل تقرير نشر 5 يونيو 2021 بتاريخ 3 دقائق مضت قال عبود سمير: قم بتغيير الحقل من body للحقل الموافق لديك. أعتقد أنه task حسب رسالة الخطأ لازالت المشكلة اقتباس
0 سمير عبود نشر 5 يونيو 2021 أرسل تقرير نشر 5 يونيو 2021 بتاريخ 6 دقائق مضت قال علي العبدالله: لازالت المشكلة هل بإمكانك توضيح ما تقوم به و ماهي المشكلة الآن. اقتباس
السؤال
علي العبدالله2
كيف يمكنني انشاء بيانات تلقائية داخل بيانات
مثال على تطبيق ادارة المهام :
عند اضافة مشروع جديد اريد اضافة مهمات تلقائية
10 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.