Mohammad Kiblawi نشر 14 أغسطس 2021 أرسل تقرير نشر 14 أغسطس 2021 في المشروع الذي اعمل به اريد ان اعرض المستخدمين الذين اشتركوا في النشرة البريدية في صفحة خاصة للمدير فخطر ببالي فكرتين ولكن لا اعرف تنفيذهم 100% فهي مجرد pseudo code الاولى عبر ادخال حقل جديد في قاعدة البيانات ('confirm') من النوع Boolean و اعطائه قيمة افتراضية و هي 0 (اي لم يشترك) و من ثم عند الاشتراك نقوم بعمل update في قاعدة البيانات للتحول القيمة من 0 الى 1 عبر الدالة update في ال UserConroller ثم نقوم بجلب بيانات المستخدم الذي اشترك عبر الدالة index() في ال UserController مع الشرط ان ال confirm =1 $user=User::all() where confirm=1 ولكنني لا اريد ان اخسر البيانات التي ادخلتها لانه يتوجب علي ان انفذ الامر php artisan migrate:fresh الثانية عبر ال request public function postUsers(Request $request){ return 'users' . $request->input('email'); } ولكنني فقط بحاجة الى ثلاث معلومات من المستخدم و هي ال id , name ,email فقط هل هنالك طرق اخرى؟ هذا حقل الادخال <form method="POST" action=""> @csrf <input type="hidden" name="user_id" value="{{ Auth()->user()->id }}"> <h1 class=" text-center text-4xl font-bold p-4 text-gray-400">{{('Subscribe for latest news')}} </h1> <div class=" flex flex-wrap -mx-3 mb-6 justify-center"> <div class="w-3/4 px-3 mt-10"> <label class="block uppercase tracking-wide text-gray-700 text-xs font-bold mb-2" for="grid-password"> {{__(' E-mail')}} </label> <input name="email" class=" appearance-none block w-full bg-gray-200 text-gray-700 border border-gray-200 rounded py-3 px-4 mb-3 leading-tight focus:outline-none focus:bg-white focus:border-gray-500" id="email" type="email"> </div> </div> <div class="md:flex md:items-center "> <div class="md:w-1/3 text-center "> <button class=" shadow bg-blue-400 hover:bg-blue-200 focus:shadow-outline focus:outline-none text-white font-bold py-2 px-4 rounded" type="submit"> {{__('Subscribe')}} </button> </div> </form> وهذا الصفحة التي اريد ان اعرض بها البيانات @extends('layouts.app') @section('content') <div class="container text-center flex justify-center "> <table class="table-fixed border-separate border-4 p-5 m-10 w-full "> <thead> <tr> <th class=" ">Id</th> <th class="">Name</th> <th class=" ">Email</th> </tr> </thead> <tbody> @foreach($users as $user) <tr> <td class="p-10">{{$user->id}}</td> <td class="p-10">{{$user->name}}</td> <td class="p-10">{{$user->email}}</td> </tr> @endforeach </tbody> </table> </div> @endsection 1 اقتباس
0 Wael Aljamal نشر 14 أغسطس 2021 أرسل تقرير نشر 14 أغسطس 2021 بتاريخ 20 دقائق مضت قال Mohammad Kiblawi: ولكنني لا اريد ان اخسر البيانات التي ادخلتها لانه يتوجب علي ان انفذ الامر php artisan migrate:fresh لماذا عليك تنفيذ هذه التعليمة؟ عملية التهجير قائمة على عدم العبث بالبيانات أثناء تغيير هيكلية الجداول، قم بإنشاء ملف تهجير جديد وأضف له الشيفرة المسؤولة عن إضافة الحقل الجديد ثم نفذ الأمر php artisan migrate فقط حيث أنه يقوم بتهجير الملفات التي لم تهجر.. أما الفكرة الأولى صحيحة، وهذا هو المطلوب، قم بتنفيذها. حاول تنفيذ أفكارك، والخطأ هو الجزء المفيد بعملية التعلم، اخسر البيانات اليوم أثناء التجريب وتعرف على سبب المشكلة لكي تتفاداها في المستقبل دوماً، افتح التوثيق واقرأ التعليمات: Laravel migration updating tables 2 اقتباس
0 سمير عبود نشر 14 أغسطس 2021 أرسل تقرير نشر 14 أغسطس 2021 أعتقد أنه يُمكن لأي شخص الإشتراك بالنشرة البريدية بغض النظر عن ما إذا كان مشترك في الموقع او لا فيُمكن للزوار أيضاً الإشتراك في النشرة البريدية لذلك من الأفضل إنشاء جدول جديد تضع به الأشخاص الذين إشتركو في النشرة البريدية يحتوي الجدول على حقل email كحقل مبدئي. في إستمارة تسجيل عضوية جديدة تضيف حقل checkbox يكون إختياري إذا أراد المستخدم الإشتراك بالنشرة البريدية يُحدد ذلك الحقل و على أساسه تُسجل إيميل ذلك الشخص في جدول newsletters. أما في إستمارة الإشتراك بالنشرة تضع حقل الإيميل و في المتحكم الخاص بالعملية تبحث عن الإيميل الذي أدخله الشخص في جدول newsletters إن لم يكن موجود تقوم بإضافته. 3 اقتباس
0 Mohammad Kiblawi نشر 14 أغسطس 2021 الكاتب أرسل تقرير نشر 14 أغسطس 2021 بتاريخ 9 ساعات قال عبود سمير: أعتقد أنه يُمكن لأي شخص الإشتراك بالنشرة البريدية بغض النظر عن ما إذا كان مشترك في الموقع او لا فيُمكن للزوار أيضاً الإشتراك في النشرة البريدية لذلك من الأفضل إنشاء جدول جديد تضع به الأشخاص الذين إشتركو في النشرة البريدية يحتوي الجدول على حقل email كحقل مبدئي. في إستمارة تسجيل عضوية جديدة تضيف حقل checkbox يكون إختياري إذا أراد المستخدم الإشتراك بالنشرة البريدية يُحدد ذلك الحقل و على أساسه تُسجل إيميل ذلك الشخص في جدول newsletters. أما في إستمارة الإشتراك بالنشرة تضع حقل الإيميل و في المتحكم الخاص بالعملية تبحث عن الإيميل الذي أدخله الشخص في جدول newsletters إن لم يكن موجود تقوم بإضافته. تقصد ان اقوم بعمل جدول بينات جديد user_submit يحتوي email و foreign key user_id و اقوم بعمل علاقة one to one بين ال user و بين هذا الجدول اقتباس
0 سمير عبود نشر 14 أغسطس 2021 أرسل تقرير نشر 14 أغسطس 2021 بتاريخ منذ ساعة مضت قال Mohammad Kiblawi: تقصد ان اقوم بعمل جدول بينات جديد user_submit يحتوي email و foreign key user_id و اقوم بعمل علاقة one to one بين ال user و بين هذا الجدول ليس بالضرورة ربط الجدولين بعلاقة فكل ما يهم هي عناوين البريد الإلكتروني و من صالح الموقع أن يجمع أكبر قدر ممكن من العناوين حتى يُرسل لهم نشرات بريدية من أجل أغراض تسويقية. أنت تٌفكر فقط في المشتركين بالموقع الخاص بك لكن الفكرة التي طرحتها تُمكن حتى الزوار الذيين لم يفتحو بعد حساب لهم في الموقع أن يشتركو في النشرة البريدية الخاصة بالموقع. 1 اقتباس
0 Mohammad Kiblawi نشر 16 أغسطس 2021 الكاتب أرسل تقرير نشر 16 أغسطس 2021 (معدل) بتاريخ On 8/14/2021 at 23:32 قال عبود سمير: ليس بالضرورة ربط الجدولين بعلاقة فكل ما يهم هي عناوين البريد الإلكتروني و من صالح الموقع أن يجمع أكبر قدر ممكن من العناوين حتى يُرسل لهم نشرات بريدية من أجل أغراض تسويقية. أنت تٌفكر فقط في المشتركين بالموقع الخاص بك لكن الفكرة التي طرحتها تُمكن حتى الزوار الذيين لم يفتحو بعد حساب لهم في الموقع أن يشتركو في النشرة البريدية الخاصة بالموقع. عذرا على السؤال المتأخر بسبب انقطاع التيار الكهربائي نعم البريد الالكتروني من اهم الاشياء , و لمن يريد الاشتراك بالنشرة فعليه ان يضع بريده الالكتروني و لكن هنالك مشكلة! فالمستخدم المسجل ضمن الموقع عليه ان يدخل بريده الالكتروني و هو من الاساس محفظ بريده ضمن قاعدة البيانات او يمكن ان يدخل email آخر (غير الذي قام بتسجيله لدخول الحساب) لذلك عندما اريد ان استخدم الدالة store لحفظ البيانات التي ادخلها المستخدم علي ان احفظ ال email الذي ادخله المستخدم الذي قد يكون محفظ منذ بادئ الامر في قاعدة البيانات(عند التسجيل) او غير محفظ (مثل ان يدخل المستخدم email آخر ) ولكن لا يمكن تخزين الايميل الجديد لان هنالك ايميل محفظ بالفعل!! انا فكرتي كانت باضافة حقل boolean جديد لجدول ال users يدعى confirm و القيمة الافتراضية له هي 0 فعند الضغط على زر الاشتراك يقام بتحديث البيانات فتتعدل القيمة من 0 الى 1 و هنا اعرف من اشترك بالنشرة و لكن المشكلة هي اني اريد استخدام دالتين واحدة لتخزين البريد الالكتروني store() و واحدة لتعديل القيمة في قاعدة البيانات update() فكيف اجمع بين الاثنين؟ و انا الفكرة لا اعرف كيف اطبقها 100% ف انا رسمت الكود في مخيلتي pseudo code تم التعديل في 16 أغسطس 2021 بواسطة Mohammad Kiblawi تعديل اقتباس
0 Mohammad Kiblawi نشر 17 أغسطس 2021 الكاتب أرسل تقرير نشر 17 أغسطس 2021 هل هنال بتاريخ On 8/16/2021 at 19:47 قال Mohammad Kiblawi: عذرا على السؤال المتأخر بسبب انقطاع التيار الكهربائي نعم البريد الالكتروني من اهم الاشياء , و لمن يريد الاشتراك بالنشرة فعليه ان يضع بريده الالكتروني و لكن هنالك مشكلة! فالمستخدم المسجل ضمن الموقع عليه ان يدخل بريده الالكتروني و هو من الاساس محفظ بريده ضمن قاعدة البيانات او يمكن ان يدخل email آخر (غير الذي قام بتسجيله لدخول الحساب) لذلك عندما اريد ان استخدم الدالة store لحفظ البيانات التي ادخلها المستخدم علي ان احفظ ال email الذي ادخله المستخدم الذي قد يكون محفظ منذ بادئ الامر في قاعدة البيانات(عند التسجيل) او غير محفظ (مثل ان يدخل المستخدم email آخر ) ولكن لا يمكن تخزين الايميل الجديد لان هنالك ايميل محفظ بالفعل!! انا فكرتي كانت باضافة حقل boolean جديد لجدول ال users يدعى confirm و القيمة الافتراضية له هي 0 فعند الضغط على زر الاشتراك يقام بتحديث البيانات فتتعدل القيمة من 0 الى 1 و هنا اعرف من اشترك بالنشرة و لكن المشكلة هي اني اريد استخدام دالتين واحدة لتخزين البريد الالكتروني store() و واحدة لتعديل القيمة في قاعدة البيانات update() فكيف اجمع بين الاثنين؟ و انا الفكرة لا اعرف كيف اطبقها 100% ف انا رسمت الكود في مخيلتي pseudo code هل من احد يساعدني في هذا الجزء؟ اقتباس
0 Wael Aljamal نشر 17 أغسطس 2021 أرسل تقرير نشر 17 أغسطس 2021 بتاريخ On 8/16/2021 at 19:47 قال Mohammad Kiblawi: و لكن المشكلة هي اني اريد استخدام دالتين واحدة لتخزين البريد الالكتروني store() و واحدة لتعديل القيمة في قاعدة البيانات update() فكيف اجمع بين الاثنين؟ منذ تسجيل المستخدم في الموقع يمكن إضافة حقل آخر (اختياري) مع وضع checkBox في حال النقر عليه (هل ترغب بالاشتراك بالنشرة الربيدية؟) (يظهر حقل إدخال للإيميل الآخر)يضع فيه البريد الإلكتروني الذي يريد أن يستقبل عليه النشرة البريدية مع أن معظم المستخدمين يتم وضع نفس بريدهم للنشرة.. ويمكنك وضعه نفسه بشكل افتراضي، ثم إخبار المستخدم إن رغب في تبديله ببريد آخر.. تطبيقا لفكرة المدرب سمير، بعمل جدول منفضل للنشرة البريدية، بعد تسجيل المستخدم في الموقع، يكون لدينا بريده الالكتروني، يمكن وبعد تأكيده لنية الاشتراك، إضافة بريده في الجدول الآخر وهو حل بسيط، وبالنسبة للمستخدمين غير المسجين يمكن وضع بريدهم في ذلك الجدول مباشرة.. إن كنت تريد إضافة خاصية confirm للمستخدمين المسجلين، يمكن عمل استعلامين واحد لجدول المستخدمين وآخر للزوار ودمج النتائج في مصفوفة و إرسال النشرة للجميع. 2 اقتباس
0 Mohammad Kiblawi نشر 17 أغسطس 2021 الكاتب أرسل تقرير نشر 17 أغسطس 2021 بتاريخ 1 ساعة قال Wael Aljamal: منذ تسجيل المستخدم في الموقع يمكن إضافة حقل آخر (اختياري) مع وضع checkBox في حال النقر عليه (هل ترغب بالاشتراك بالنشرة الربيدية؟) (يظهر حقل إدخال للإيميل الآخر)يضع فيه البريد الإلكتروني الذي يريد أن يستقبل عليه النشرة البريدية مع أن معظم المستخدمين يتم وضع نفس بريدهم للنشرة.. ويمكنك وضعه نفسه بشكل افتراضي، ثم إخبار المستخدم إن رغب في تبديله ببريد آخر.. تطبيقا لفكرة المدرب سمير، بعمل جدول منفضل للنشرة البريدية، بعد تسجيل المستخدم في الموقع، يكون لدينا بريده الالكتروني، يمكن وبعد تأكيده لنية الاشتراك، إضافة بريده في الجدول الآخر وهو حل بسيط، وبالنسبة للمستخدمين غير المسجين يمكن وضع بريدهم في ذلك الجدول مباشرة.. إن كنت تريد إضافة خاصية confirm للمستخدمين المسجلين، يمكن عمل استعلامين واحد لجدول المستخدمين وآخر للزوار ودمج النتائج في مصفوفة و إرسال النشرة للجميع. يعني عليي ان انشأ جدول بيانات جديد خاص بال email و لا داعي لانشاء model خاص به؟ اقتباس
0 Wael Aljamal نشر 17 أغسطس 2021 أرسل تقرير نشر 17 أغسطس 2021 بتاريخ 9 دقائق مضت قال Mohammad Kiblawi: يعني عليي ان انشأ جدول بيانات جديد خاص بال email و لا داعي لانشاء model خاص به؟ إن عمل Model للجدول هو أمر جيد بالفعل، مع ملفات التهجير وكل شيئ.. هذا مفيد بعد نقل المشروع و تنفيذ أوامر التهجير سيتم إنشاء الجدول مباشرة، ولا يتطلب عمله من جديد بشكل منفصل، أي بما أن هذا الجدول من صلب المشروع عليك بناءه بأفضل طريقة ممكنة وللتحديثات في المستقبل، لربما أضفت تصنيفات لمواضيع النشرة البريدية، إن عمل نموذج و ملف تهجير هو الأفضل. بالإضافة لإمكانية استخدام Eloquent ORM 1 اقتباس
0 Wael Aljamal نشر 17 أغسطس 2021 أرسل تقرير نشر 17 أغسطس 2021 بتاريخ On 8/16/2021 at 19:47 قال Mohammad Kiblawi: confirm أفضل استخدام كلمة subscribe لأن لها دلالة مناسبة بالضبط، أما confirm لوحدها مثلا تدل على تأكيد الإيميل.. 1 اقتباس
0 Mohammad Kiblawi نشر 17 أغسطس 2021 الكاتب أرسل تقرير نشر 17 أغسطس 2021 (معدل) بتاريخ 26 دقائق مضت قال Wael Aljamal: أفضل استخدام كلمة subscribe لأن لها دلالة مناسبة بالضبط، أما confirm لوحدها مثلا تدل على تأكيد الإيميل.. الحمدلله نجحت عملية الاشتراك لكن بقي ترجمة الموقع حيث لا تعمل الترجمة شكرا لكما تم التعديل في 17 أغسطس 2021 بواسطة Mohammad Kiblawi تعديل اقتباس
0 Wael Aljamal نشر 17 أغسطس 2021 أرسل تقرير نشر 17 أغسطس 2021 بتاريخ 3 دقائق مضت قال Mohammad Kiblawi: بقي ترجمة الموقع حيث لا تعمل الترجمة تمام، أرجو منك أن تتابع مشكلة الترجمة في ذلك السؤال 1 اقتباس
السؤال
Mohammad Kiblawi
في المشروع الذي اعمل به اريد ان اعرض المستخدمين الذين اشتركوا في النشرة البريدية في صفحة خاصة للمدير
فخطر ببالي فكرتين ولكن لا اعرف تنفيذهم 100% فهي مجرد pseudo code
الاولى عبر ادخال حقل جديد في قاعدة البيانات ('confirm') من النوع Boolean و اعطائه قيمة افتراضية و هي 0 (اي لم يشترك)
و من ثم عند الاشتراك نقوم بعمل update في قاعدة البيانات للتحول القيمة من 0 الى 1 عبر الدالة update في ال UserConroller
ثم نقوم بجلب بيانات المستخدم الذي اشترك عبر الدالة index() في ال UserController مع الشرط ان ال confirm =1
$user=User::all() where confirm=1
ولكنني لا اريد ان اخسر البيانات التي ادخلتها لانه يتوجب علي ان انفذ الامر php artisan migrate:fresh
الثانية عبر ال request
public function postUsers(Request $request){ return 'users' . $request->input('email'); }
ولكنني فقط بحاجة الى ثلاث معلومات من المستخدم و هي ال id , name ,email فقط
هل هنالك طرق اخرى؟
هذا حقل الادخال
وهذا الصفحة التي اريد ان اعرض بها البيانات
12 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.