#Trick 13 Phone Validation
هي المكتبة شغلتها تتأكدلن من فورمات الرقم صحيحة ولا لا
يعني ما حدا اجا كتب 12345 وفكر حالو لح يمرقها علينا
هي المرحلة من الvalidation بتخفف عبئ على سيرفرات ال otp بحيث بتتخلص من الريكوستات الخطأ من عندك
فيكن تطلعو على المكتبة تشوفو خياراتا
انا من جهتي بعد ما نزلها بحط هي ال rule وبريح راسي
الكود لازم يكون بالشكل التالي
+963997111234
او بكذا فورمات تانية بس انا بفضلها
وبس الله يعطيكن العافية❤️
هي المكتبة شغلتها تتأكدلن من فورمات الرقم صحيحة ولا لا
يعني ما حدا اجا كتب 12345 وفكر حالو لح يمرقها علينا
هي المرحلة من الvalidation بتخفف عبئ على سيرفرات ال otp بحيث بتتخلص من الريكوستات الخطأ من عندك
فيكن تطلعو على المكتبة تشوفو خياراتا
انا من جهتي بعد ما نزلها بحط هي ال rule وبريح راسي
الكود لازم يكون بالشكل التالي
+963997111234
او بكذا فورمات تانية بس انا بفضلها
وبس الله يعطيكن العافية❤️
❤14🔥7👍2
#Trick 14 Scopes
بدل ما تحط الشرط انو اليوزر فعال بكل تابع
خلي الموديل يشتغل الشغل عنك بال Scope
خلي كودك نضيف
وخلي الموديل يتعامل مع الجدول تبعو قد ما بتقدر
الكنترولر بس للاستدعاءات
بدل ما تحط الشرط انو اليوزر فعال بكل تابع
خلي الموديل يشتغل الشغل عنك بال Scope
خلي كودك نضيف
وخلي الموديل يتعامل مع الجدول تبعو قد ما بتقدر
الكنترولر بس للاستدعاءات
❤29👍4
#Trick 15 Seed: HasMany
لنفرض انو عنا
Country -> Has many Store
Store -> Has many Employee
وبدنا نعمل fake data لالهن
ف الحل بكون بانو نعمل Factory لكل واحد منهن ضمن القيود يلي بدنا باستخدام fake
وبال Seeder منستخدم التابع has يلي بيجي مع factory متل هيك
Model::factory(number) -> has (Model::factory (number))
وفينا نستخدما بكذا level مو بس level واحد
Notes
1_
لا تنسو تعرفو ال relations بقلب ال Models مشان يتعرف عليهن التابع has
2_
بحال كان التابع يلي معرفينو لل relation اسمو غير الاسم الستاندر لسبب ما (مثلا كان ال Model هو User بدل Employee و بال Store معرفين employees مش users
ف لحتى نخلي ال has يتعرف عليه منبعت الاسم بهل طريقة
has(User::factory (number), 'employees')
لنفرض انو عنا
Country -> Has many Store
Store -> Has many Employee
وبدنا نعمل fake data لالهن
ف الحل بكون بانو نعمل Factory لكل واحد منهن ضمن القيود يلي بدنا باستخدام fake
وبال Seeder منستخدم التابع has يلي بيجي مع factory متل هيك
Model::factory(number) -> has (Model::factory (number))
وفينا نستخدما بكذا level مو بس level واحد
Notes
1_
لا تنسو تعرفو ال relations بقلب ال Models مشان يتعرف عليهن التابع has
2_
بحال كان التابع يلي معرفينو لل relation اسمو غير الاسم الستاندر لسبب ما (مثلا كان ال Model هو User بدل Employee و بال Store معرفين employees مش users
ف لحتى نخلي ال has يتعرف عليه منبعت الاسم بهل طريقة
has(User::factory (number), 'employees')
❤15👍5
#Trick 16
Laravel Telescope
هي ال Packege بتساعدك بعملية ال Debugging لكلشي نوعا عم يصير بالمشروع
متل ال Requests يلي عم تنطلب
وفينا نشوف معلومات كل Request
واهم شي انو فينا نشوف كل ال Queries يلي صارت بقلب هال Request لتساعدنا بأنو نحسنها
طبعا بعد ما نخلص عملية ال installation منفتح ال Browser ومنكتب
localhost:8000/telescope
Laravel Telescope
هي ال Packege بتساعدك بعملية ال Debugging لكلشي نوعا عم يصير بالمشروع
متل ال Requests يلي عم تنطلب
وفينا نشوف معلومات كل Request
واهم شي انو فينا نشوف كل ال Queries يلي صارت بقلب هال Request لتساعدنا بأنو نحسنها
طبعا بعد ما نخلص عملية ال installation منفتح ال Browser ومنكتب
localhost:8000/telescope
🔥10👍6❤3👏3❤🔥2
#Trick 17 Forelse
بدل ما اتاكد انو المصفوفة موجودة قبل ما امرق عليها بال for
وعالج حالة انها فاضية
منستخدم forelse ومنختصر حكي
بدل ما اتاكد انو المصفوفة موجودة قبل ما امرق عليها بال for
وعالج حالة انها فاضية
منستخدم forelse ومنختصر حكي
❤17❤🔥4👍3
#Trick 18 Has one of many
احيانا بكون عنا علاقة Has many ونحنا بهمنا record واحد منهن ف مشان ما نعجق ال Controller لحتى نحصل هاد ال record
ف عنا شي اسمو ofMany يلي بتوفرلنا هي المهمة
بأنو نجيب record واحد بالشروط يلي بدنا ياها
باستخدام
latestOfMany() لنجيب اخر عنصر
oldestOfMany() لنجيب اول عنصر
ofMany(column, aggregate)
لنحدد ال column يلي بدنا نقارن فيه وحسب اذا Max او Min
والطريقة الاعقد هيي انو نجيب هاد العنصر بناءً على اكتر من column بحال كان في تساوي عن طريق انو نبعت array ال key فيها هو ال column وال value هي Max او Min
وممكن نعمل filtering لل query كمان عن طريق function
ويعطيكم العافية❤️
احيانا بكون عنا علاقة Has many ونحنا بهمنا record واحد منهن ف مشان ما نعجق ال Controller لحتى نحصل هاد ال record
ف عنا شي اسمو ofMany يلي بتوفرلنا هي المهمة
بأنو نجيب record واحد بالشروط يلي بدنا ياها
باستخدام
latestOfMany() لنجيب اخر عنصر
oldestOfMany() لنجيب اول عنصر
ofMany(column, aggregate)
لنحدد ال column يلي بدنا نقارن فيه وحسب اذا Max او Min
والطريقة الاعقد هيي انو نجيب هاد العنصر بناءً على اكتر من column بحال كان في تساوي عن طريق انو نبعت array ال key فيها هو ال column وال value هي Max او Min
وممكن نعمل filtering لل query كمان عن طريق function
ويعطيكم العافية❤️
❤🔥14❤2👍2🔥2
#Trick 20 Update
كيف بدي ارتاح من قصة انو اذا كان الحقل موجود عدلو واذا لا تركو متل ما هوة؟
1. اذا كان الحقل موجود عدلو هية تابع ال isset() يعني على سبيل المثال:
هاد الحكي بال short if-else
بس في عنا trick بالـ php هو استبدال
بـ
هلا خلصنا من قسم اذا موجود عدلو
2.اذا لا تركو متل ما هوة
بأول التابع جيب الريكورد اللي بدك تعدلو وحطو بمتغير
هاد فيو قيم ما قبل التعديل
بس خلصنا تعديل متل الصورة رجاع نفذ نفس التعليمة بصير فيو القيم بعد التعديل اللي اذا بتحب ترجعها بالريسبونس
ودمتم سالمين❤️
كيف بدي ارتاح من قصة انو اذا كان الحقل موجود عدلو واذا لا تركو متل ما هوة؟
1. اذا كان الحقل موجود عدلو هية تابع ال isset() يعني على سبيل المثال:
'project' => isset($request['project']) ? $request['project'] : $report['project'],
هاد الحكي بال short if-else
بس في عنا trick بالـ php هو استبدال
isset($request['project']) ? $request['project']
بـ
'project' => $request['project'] ??
هلا خلصنا من قسم اذا موجود عدلو
2.اذا لا تركو متل ما هوة
بأول التابع جيب الريكورد اللي بدك تعدلو وحطو بمتغير
$report = Report::query()->find($id);
هاد فيو قيم ما قبل التعديل
بس خلصنا تعديل متل الصورة رجاع نفذ نفس التعليمة بصير فيو القيم بعد التعديل اللي اذا بتحب ترجعها بالريسبونس
ودمتم سالمين❤️
❤10👍3❤🔥2⚡1
#Trick 24 When
لنفرض انو عنا Orders وبدنا نرتبهن بأكتر من طريقة ونفلترهن حسب شي معين اذا مطلوب او لا
فعنا حل ظريف اسمو when وهو تابع منبعتلو اول باريمتر true او false
وتاني باريمتر callback للشروط يلي رح نضيفها للكويري بحال كان true متل بهل طريقة
وفينا نستخدم ال query string لحتى نبعت الشروط ونطبقها ب where
و حسب شو بدو يرتب بالقيم يلي بدو ياها asc او desc ونطبقها ب orderBy
ويعطيكم العافية❤
لنفرض انو عنا Orders وبدنا نرتبهن بأكتر من طريقة ونفلترهن حسب شي معين اذا مطلوب او لا
فعنا حل ظريف اسمو when وهو تابع منبعتلو اول باريمتر true او false
وتاني باريمتر callback للشروط يلي رح نضيفها للكويري بحال كان true متل بهل طريقة
وفينا نستخدم ال query string لحتى نبعت الشروط ونطبقها ب where
و حسب شو بدو يرتب بالقيم يلي بدو ياها asc او desc ونطبقها ب orderBy
ويعطيكم العافية❤
❤20
#Trick 27 Barcode Generator
https://medium.com/techvblogs/how-to-generate-qr-code-in-laravel-8-5db5859ccbab
السطر اللي بهمك هوة
غيرو الرابط متل ما بدكن
#تعديل
شرح مفصل من زميلنا أمجد @Amjad_ghzlan
https://t.me/I_got_an_error_Laravel/13600
https://medium.com/techvblogs/how-to-generate-qr-code-in-laravel-8-5db5859ccbab
السطر اللي بهمك هوة
QrCode::size(300)->generate('https://techvblogs.com/blog/generate-qr-code-laravel-8')
غيرو الرابط متل ما بدكن
#تعديل
شرح مفصل من زميلنا أمجد @Amjad_ghzlan
https://t.me/I_got_an_error_Laravel/13600
Medium
How to Generate QR Code in Laravel 8
Nov 17, 2021, Originally published at techvblogs.com ・3 min read
❤4⚡2
#Trick 29 Unique between two feilds.
في حال عندك مكتبة وفيها كتب ولكل كتاب الو كود
الكود هاد ما لازم يتكرر بنفس المكتبة بس فيو يتكرر بغير مكتبة عادي
اول قسم بينحط بريكوست الcreate ليشيك على حقل الكود والكتاب سوا بنفس السطر حتى ما يتساوو لنفس المكتبة
تاني قسم للupdate بس بضيف عليه انو يتجاهل سطر المكتبة اللي عم عدل عليها هلا لانو بجوز ما عدلت الكود بهاد الريكوست
فلما ما بحط الشرط الزايد بقلك سوري مالو unique
في حال عندك مكتبة وفيها كتب ولكل كتاب الو كود
الكود هاد ما لازم يتكرر بنفس المكتبة بس فيو يتكرر بغير مكتبة عادي
اول قسم بينحط بريكوست الcreate ليشيك على حقل الكود والكتاب سوا بنفس السطر حتى ما يتساوو لنفس المكتبة
تاني قسم للupdate بس بضيف عليه انو يتجاهل سطر المكتبة اللي عم عدل عليها هلا لانو بجوز ما عدلت الكود بهاد الريكوست
فلما ما بحط الشرط الزايد بقلك سوري مالو unique
❤16👍2
#Trick 30 Laravel Tinker
لجماعة ال PhpStorm هي ال Plugin ظريفة لحتى تخلينا نكتب كود معين وننفذه ونشوف نتائجه بطريقة مريحة اكتر من الشغل بقلب ال terminal
لجماعة ال PhpStorm هي ال Plugin ظريفة لحتى تخلينا نكتب كود معين وننفذه ونشوف نتائجه بطريقة مريحة اكتر من الشغل بقلب ال terminal
❤14⚡3
#Trick 32 Error Handling
لما يكون ال Controller عنا بيعتمد على classes تاني لمعالجة امور معينة فغالباً ما نلجأ لل Exceptions لحتى نرجع ايرور ونفهم ال controller انو لازم يرجع ايرور
لهيك حبيت وضح طريقة لحتى نقسم ال Exceptions يلي عنا ونخليهم يتعالجوا تلقائيا بدون ما نكتب try catch بكل مكان
الطريقة بأنه نعرف اول شي class بيورث من Exception ورح نخليه ال base Exception تبعنا (لحتى ما نخلي اللارافيل تعالج كلشي اخطاء وانما الاخطاء يلي نحنا رح نولدها) ويلي هي اول مرحلة
تاني مرحلة مشان نقسم ال Exceptions تبعاتنا لاكتر من class منعمل classes بتورث من CustomException ومنعرف بقلبها توابع static رح تكون مسؤولة عن انو تعطيني Exception حامل رسالة معينة بدي ياها و code معين
وبعدها منروح ل bootstrap/app.php وللتابع withExceptions رح نعرفه فيه طريقة معالجة ال Exceptions تبعاتنا (الوارثة من CustomException ورح نعتمد عليه ك parameter للتابع) وهي تالت مرحلة
واخر شي صار فينا نرمي ال Exception بدون ماعيد كتابة الرسائل بقلب ايا service المرحلة الرابعة
واخر مرحلة هو انو يتعالج الايرور لوحده تلقائيا كل مرة
لما يكون ال Controller عنا بيعتمد على classes تاني لمعالجة امور معينة فغالباً ما نلجأ لل Exceptions لحتى نرجع ايرور ونفهم ال controller انو لازم يرجع ايرور
لهيك حبيت وضح طريقة لحتى نقسم ال Exceptions يلي عنا ونخليهم يتعالجوا تلقائيا بدون ما نكتب try catch بكل مكان
الطريقة بأنه نعرف اول شي class بيورث من Exception ورح نخليه ال base Exception تبعنا (لحتى ما نخلي اللارافيل تعالج كلشي اخطاء وانما الاخطاء يلي نحنا رح نولدها) ويلي هي اول مرحلة
تاني مرحلة مشان نقسم ال Exceptions تبعاتنا لاكتر من class منعمل classes بتورث من CustomException ومنعرف بقلبها توابع static رح تكون مسؤولة عن انو تعطيني Exception حامل رسالة معينة بدي ياها و code معين
وبعدها منروح ل bootstrap/app.php وللتابع withExceptions رح نعرفه فيه طريقة معالجة ال Exceptions تبعاتنا (الوارثة من CustomException ورح نعتمد عليه ك parameter للتابع) وهي تالت مرحلة
واخر شي صار فينا نرمي ال Exception بدون ماعيد كتابة الرسائل بقلب ايا service المرحلة الرابعة
واخر مرحلة هو انو يتعالج الايرور لوحده تلقائيا كل مرة
❤9👍7🔥4
#Trick 33
هالمرة التريك بال Postman
بما انو لما بدنا نوثق ال Apis او نجربهم منستخدم Postman غالبا
ونحنا منكون بحاجة انو دايما نبعت
Accept: application/json
بال headers ف مشان ما نكررها بكل Api فينا نستخدم ال pre script يلي بكون موجود بال Collection ك كل
وبتطبق ع كلشي Api بأنه هاد السكريبت يضيف هاد ال key
بكتابة هالسطرين
هالمرة التريك بال Postman
بما انو لما بدنا نوثق ال Apis او نجربهم منستخدم Postman غالبا
ونحنا منكون بحاجة انو دايما نبعت
Accept: application/json
بال headers ف مشان ما نكررها بكل Api فينا نستخدم ال pre script يلي بكون موجود بال Collection ك كل
وبتطبق ع كلشي Api بأنه هاد السكريبت يضيف هاد ال key
بكتابة هالسطرين
pm.request.headers.add({
key: 'Accept',
value: 'application/json'
})
❤36🔥6⚡3