Mohammad Kiblawi نشر 22 أغسطس 2021 أرسل تقرير نشر 22 أغسطس 2021 السلام عليكم اريد ارسال بريد الكتروني للمشتركين عبر laravel job queues في المشروع الذي اعمل به اضفت صفحة خاصة بالبريد الالكتروني تحتوي على حقلين ادخال (واحدة للعنوان و الثانية للنص) اريد ان اخزن ال data في هذين الحقلين بالطبع يجب عليي ان استخدم المتحكم حتى اقوم بهذه العملية انا كنت قد انشأت model خاص للبريد الالكتروني و اضفت فيه حقل واحد و هو email لكي ارسل البريد الالكتروني يجب علي اضافة حقلين اثنين title و message لكن استفساري هو انني مستخدم الدالة store() في هذا المتحكم , فيجب علي ان اقوم بانشاء دالة جديدة تأخذ متغير request$ صحيح؟؟ و ايضا اضع المتغيرات title$ و message$ (حقلين الادخال) داخل صفحة ال HTML التي اريد ان ارسلها اليس كذلك ؟؟ 1 اقتباس
0 Hassan Hedr نشر 22 أغسطس 2021 أرسل تقرير نشر 22 أغسطس 2021 (معدل) المطلوب هو إرسال محتوى البريد الالكتروني (العنوان - الرسالة) من حقلين كالتالي Title: <input name="title"/> Message: <input name="message"/> إذا اردت إرسال البيانات عن طريق طلب POST أي ستكون البيانات في جسم الطلب تقوم بتحديد نوع الطلب والوجهة على العنصر form <form action="/path/to/email/send" method="POST"> @csrf <!-- لادخال حقل الحماية من الطلبات من مواقع خارجية --> Title: <input name="title"/> Message: <input name="message"/> <button type="submit">Send Email</button> </form> عند ارسال الطلب سيصل الى المتحكم الذي عينته في ملف ال web.php داخل المتحكم في الدالة store تقوم باستخراج القيمتين من متحول الطلب، وتحضير بريد الكتروني جديد (من model ال Email) وإتمام عملية الإرسال public function store(Request $request) { $title = $request->title; $message = $request->message; // تحضير وارسال الإيميل عن طريق القيم المستخرجة من الطلب ... } تم التعديل في 22 أغسطس 2021 بواسطة Hassan Hedr 1 اقتباس
0 Mohammad Kiblawi نشر 22 أغسطس 2021 الكاتب أرسل تقرير نشر 22 أغسطس 2021 بتاريخ 16 دقائق مضت قال Hassan Hedr: المطلوب هو إرسال محتوى البريد الالكتروني (العنوان - الرسالة) من حقلين كالتالي Title: <input name="title"/> Message: <input name="message"/> إذا اردت إرسال البيانات عن طريق طلب POST أي ستكون البيانات في جسم الطلب تقوم بتحديد نوع الطلب والوجهة على العنصر form <form action="/path/to/email/send" method="POST"> @csrf <!-- لادخال حقل الحماية من الطلبات من مواقع خارجية --> Title: <input name="title"/> Message: <input name="message"/> <button type="submit">Send Email</button> </form> عند ارسال الطلب سيصل الى المتحكم الذي عينته في ملف ال web.php داخل المتحكم في الدالة store تقوم باستخراج القيمتين من متحول الطلب، وتحضير بريد الكتروني جديد (من model ال Email) وإتمام عملية الإرسال public function store(Request $request) { $title = $request->title; $message = $request->message; // تحضير وارسال الإيميل عن طريق القيم المستخرجة من الطلب ... } اولا يعطيك العافية و شكرا على الرد انا قد استخدمت الدالة store من قبل public function store(Request $request) { $request->validate([ 'email' => 'required' ]); Email::create([ 'email' => $request->input('email') ]); return redirect()->back()->with('message', 'you have successfully subscribed to newsletter');; } لذا يتوجب على عمل دالة جديدة و اضافة الحقلين title و message في خانة fillable ضمن ال model الخاص بال email؟ اقتباس
0 Hassan Hedr نشر 22 أغسطس 2021 أرسل تقرير نشر 22 أغسطس 2021 بتاريخ 11 دقائق مضت قال Mohammad Kiblawi: اولا يعطيك العافية و شكرا على الرد انا قد استخدمت الدالة store من قبل public function store(Request $request) { $request->validate([ 'email' => 'required' ]); Email::create([ 'email' => $request->input('email') ]); return redirect()->back()->with('message', 'you have successfully subscribed to newsletter');; } لذا يتوجب على عمل دالة جديدة و اضافة الحقلين title و message في خانة fillable ضمن ال model الخاص بال email؟ في هذه الحالة يجب ان تنشئ متحكم جديد يتم فيه استخراج العنوان ومحتوى البريد الالكتروني والتحضير والارسال لكن يجب انت تسأل نفسك ما مسؤولية المتحكم الحالي المختلفة عن المتحكم الجديد، قد تجد انه بجب استخدام متحكم واحد مسؤول عن ارسال البريد الالكتروني ويعمل بطريقتين اما ترسل اليه المحتوى فقط (كما هو حاليا) واما ترسل معه العنوان ايضا اختياريًا (وهي الحالة الجديدة التي تريدها) قد تحتاج لحذف الخاصية email حيث انها نفسها الخاصية message 1 اقتباس
0 Mohammad Kiblawi نشر 22 أغسطس 2021 الكاتب أرسل تقرير نشر 22 أغسطس 2021 (معدل) بتاريخ 10 دقائق مضت قال Hassan Hedr: في هذه الحالة يجب ان تنشئ متحكم جديد يتم فيه استخراج العنوان ومحتوى البريد الالكتروني والتحضير والارسال لكن يجب انت تسأل نفسك ما مسؤولية المتحكم الحالي المختلفة عن المتحكم الجديد، قد تجد انه بجب استخدام متحكم واحد مسؤول عن ارسال البريد الالكتروني ويعمل بطريقتين اما ترسل اليه المحتوى فقط (كما هو حاليا) واما ترسل معه العنوان ايضا اختياريًا (وهي الحالة الجديدة التي تريدها) قد تحتاج لحذف الخاصية email حيث انها نفسها الخاصية message نسيت ان اخبرك ان هذه الدالة store استخدمتها لحفظ المستخدمين الذين اشتركوا بالنشرة البريدية لذلك لا يمكنني حذف ال email لان هذه الدالة عملها حفظ ايميلات المستخدمين الذين اشتركوا بالنشرة البريدية داخل المتحكم email controller انا اقصد ان اقوم بانشاء دالة جديدة في نفس المتحكم يقوم بحفظ العنوان و الرسالة التي ادخلها المدير لكني بحاجة الى اضافة حقول جديدة على قاعدة البيانات الخاصة ب ال model email و هم title و message اليس كذلك؟ تم التعديل في 22 أغسطس 2021 بواسطة Mohammad Kiblawi تعديل اقتباس
0 Hassan Hedr نشر 22 أغسطس 2021 أرسل تقرير نشر 22 أغسطس 2021 بتاريخ 1 دقيقة مضت قال Mohammad Kiblawi: نسيت ان اخبرك ان هذه الدالة store استخدمتها لحفظ المستخدمين الذين اشتركوا بالنشرة البريدية لذلك لا يمكنني حذف ال email لان هذه الدالة عملها حفظ المستخدمين الذين اشتركوا بالنشرة البريدية داخل المتحكم email controller انا اقصد ان اقوم بانشاء دالة جديدة في نفس المتحكم يقوم بحفظ العنوان و الرسالة التي ادخلها المدير لكني بحاجة الى اضافة حقول جديدة على قاعدة البيانات الخاصة ب ال model email و هم title و message اليس كذلك؟ إذًا مسؤولية هذا المتحكم هو ادارة المشتركين في النشرة البريدية صحيح يجب انشاء متحكم جديد مسؤوليته ارسال البريد الالكتروني واستخدام الدالة store الخاصة به نعم يجب اضافة الحقول الجديدة message - title الى Email model واضافتها الى المصفوفة fillable وانشاء تهجير جديد لاضافة الحقول الى الجدول اذا كنت تريد تخزين البيانات ضمن قاعدة البيانات 1 اقتباس
0 Mohammad Kiblawi نشر 22 أغسطس 2021 الكاتب أرسل تقرير نشر 22 أغسطس 2021 بتاريخ 2 دقائق مضت قال Hassan Hedr: صحيح يجب انشاء متحكم جديد مسؤوليته ارسال البريد الالكتروني واستخدام الدالة store الخاصة به هل يمكنني ان افعل ذلك في ذات المتحكم ؟؟ اي ان اقوم بانشاء دالة جديدة مثلا sendmails(request $request) داخل المتحكم ال email controller ؟ او هذا غير محبذ؟ اقتباس
0 Hassan Hedr نشر 22 أغسطس 2021 أرسل تقرير نشر 22 أغسطس 2021 (معدل) تقنيا يمكنك ويجب ربط الدالة الجديدة sendmails بال route الصحيح داخل web.php مع الطريقة post لكن دوما عندما تبتعد عن دوال للمتحكم الرئيسية index - show - create - store - edit - update - destroy هذا مؤشر لإمكانية انشاء متحكم جديد بمسؤولية جديدة محددة بالالتزام بالدوال الاساسية فقط، هذا يجعل الشيفرة اوضح للقراءة لاحقا تم التعديل في 22 أغسطس 2021 بواسطة Hassan Hedr اقتباس
0 Mohammad Kiblawi نشر 22 أغسطس 2021 الكاتب أرسل تقرير نشر 22 أغسطس 2021 (معدل) بتاريخ 16 دقائق مضت قال Hassan Hedr: بالتأكيد لا حرج بالسؤال وكل سؤال له قيمة شكرا لك❤ حسناً , لقد قمت برفع مشروعي على منصة heroku و اريد ان اتحكم او ارى قاعدة البيانات فيها كيف لي بذلك؟ هل هنالك طريقة؟ او هل يمكنني من خلال سطر الاوامر الخاصة بالمنصة ان اقوم بعمليات خاصة بال database (crud) على سبيل المثال اريد ان اجعل المستخدم العادي الى مدير (اي تعديل على role لل user) و هل هنالك command خاص لاجراء عمليات الخاصة بال database في سطر الاوامر داخل visual studio ؟(اي يمكنني قيام عمليات crud داخل سطر الاوامر ولكن (locally) اي على خادم laragon او xampp وليس على اي منصة اخرى) تم التعديل في 22 أغسطس 2021 بواسطة Mohammad Kiblawi اضافة اقتباس
0 Hassan Hedr نشر 22 أغسطس 2021 أرسل تقرير نشر 22 أغسطس 2021 بتاريخ 3 دقائق مضت قال Mohammad Kiblawi: شكرا لك❤ حسناً , لقد قمت برفع مشروعي على منصة heroku و اريد ان اتحكم او ارى قاعدة البيانات فيها كيف لي بذلك؟ هل هنالك طريقة؟ او هل يمكنني من خلال سطر الاوامر الخاصة بالمنصة ان اقوم بعمليات خاصة بال database (crud) على سبيل المثال اريد ان اجعل المستخدم العادي الى مدير (اي تعديل على role لل user) و هل هنالك command خاص لاجراء عمليات الخاصة بال database في سطر الاوامر داخل visual studio ؟(اي يمكنني قيام عمليات crud داخل سطر الاوامر ولكن (locally) اي على خادم laragon او xampp وليس على اي منصة اخرى) هل الاوامر التي تريد تنفيذها متعلقة بعمل التطبيق ؟ اذا كان كذلك يفضل انشاء Console Commands خاصة داخل مشروعك وتنفيذها من سطر الاوامر مثل اوامر artisan 1 اقتباس
0 Mohammad Kiblawi نشر 22 أغسطس 2021 الكاتب أرسل تقرير نشر 22 أغسطس 2021 (معدل) بتاريخ 6 دقائق مضت قال Hassan Hedr: هل الاوامر التي تريد تنفيذها متعلقة بعمل التطبيق ؟ اذا كان كذلك يفضل انشاء Console Commands خاصة داخل مشروعك وتنفيذها من سطر الاوامر مثل اوامر artisan نعم لان عند تشغيل التطبيق على المنصة كل ال data التي قمت بانشائها تختفي اي اريد مثلا من جعل ال role من 2 الى 1 اي يصبح المستخدم مدير تم التعديل في 22 أغسطس 2021 بواسطة Mohammad Kiblawi تعديل 1 اقتباس
0 Hassan Hedr نشر 22 أغسطس 2021 أرسل تقرير نشر 22 أغسطس 2021 بتاريخ 1 دقيقة مضت قال Mohammad Kiblawi: نعم لان عند تشغيل التطبيق على المنصة كل ال data التي قمت بانشائها تختفي يمكنك الاستفادة من انشاء Seeder مجهز بالبيانات التي تريد انشاءها او تعديلها وتنفيذه على المخدم ايضا عن طريق اوامر artisan 1 اقتباس
السؤال
Mohammad Kiblawi
السلام عليكم
اريد ارسال بريد الكتروني للمشتركين عبر laravel job queues
في المشروع الذي اعمل به اضفت صفحة خاصة بالبريد الالكتروني تحتوي على حقلين ادخال (واحدة للعنوان و الثانية للنص)
اريد ان اخزن ال data في هذين الحقلين
بالطبع يجب عليي ان استخدم المتحكم حتى اقوم بهذه العملية
انا كنت قد انشأت model خاص للبريد الالكتروني و اضفت فيه حقل واحد و هو email لكي ارسل البريد الالكتروني يجب علي اضافة حقلين اثنين title و message
لكن استفساري هو انني مستخدم الدالة store() في هذا المتحكم , فيجب علي ان اقوم بانشاء دالة جديدة تأخذ متغير request$ صحيح؟؟
و ايضا اضع المتغيرات title$ و message$ (حقلين الادخال) داخل صفحة ال HTML التي اريد ان ارسلها اليس كذلك ؟؟
11 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.