اذهب إلى المحتوى

Ahmed Abu Hatab

الأعضاء
  • المساهمات

    28
  • تاريخ الانضمام

  • تاريخ آخر زيارة

كل منشورات العضو Ahmed Abu Hatab

  1. يمكنك استعمال هاتين الدالتين عند إرسال Request من خلال Form. دالة isset : تقوم بفحص ما اذا كان يوجد قيمة في المتغير أم لا وبالعادة تستخدم عند فحص نوع ال Request ما اذا كان POST او GET دالة empty : يستخدم لفحص قيمة فارغة والتأكد من انها فارغة بخلاف دالة isset. في المثال الذي طرحته يمكنك إستخدام واحدة من الشرطين،. لانهم متشابهين سواء isset or !empty. وكما ذكرت isset تساخدم لتفحص قيمة مدخلة وليست فارغة، empty تستخدم لفحص قيمة فارغة.
  2. الnamespace قامت بحل مشكلتين في php : 1 - إنها تسمح بتنظيم أفضل من خلال تجميع ال classes التي تعمل معًا لأداء مهمة ما . 2 - أنها تسمح باستخدام نفس الاسم لأكثر من ال class واحد . ومن فوائده أيضاً في ال composer هو استدعاء مسار الملف كامل أثناء عملية ال autoload .
  3. يجب الانتباه الى ترتيب ال params اثناء الاستدعاء . كما ترى فوق update function ، يتوقع منك object من Team model ، ولكن أنت قمت بتمرير object من Tournament model . أعد ترتيب الاستدعاء في update function كما هو في ال route . مثل هذا : // web File Route::get('/edit/{tournament}/team/{team}',[TeamController::class,'edit']); // TeamController (Update Function) public function update(Request $request,Tournament $tournament ,Team $team) { // Your Code } او في حال كان لديك أكثر من متغير في route ، لتفادي مشكلة ترتيب المتغيرات يمكنك تمرير object من ال model الذي تتعامل معه من خلال construct function كما هو بالمثال : public $team; public function __construct(Team $team) { $this->team = $team; } هكذا يمكنك أن تتعامل مع team object في كل الملف .
  4. لحل هذا السؤال تحتاجين الى متغير لتخزين أسم المستخدم ، هذا في حال لم تستخدمي mysql لتخزين بيانات المستخدم . كما ذكرت نقوم بتخزين أسم المستخدم في متغير ، وعند زيارة الرابط أو الموقع نقوم بطباعة رسالة ترحيبية تحتوي على قيمة هذا المتغير ( أسم المستخدم ) . والمتغير يمرر كمعامل لهذا Function ، وعند استدعاء ال Function ، نعطي قيمة للمتغير .
  5. تأكد من أن مسار Django في نفس مسار ال Python . لتفحص ذلك أكتب ه1ا الامر في Python shell import django ويجب أن لا يطبع أي شيئ ، وهذا يعني أن الملف سليم .
  6. يمكنك من خلال ال Jquery فحص ما اذا تم الاختيار أم لا بواسطة Selected وكذلك عند إرسال القيمة من خلال Post ، تفحص على أسم ال input نفسه ، مثلا لو كان لديك أسم الحقل هو agree_terms <input type="checkbox" name="agree_terms"> من خلال ملف php يمكنك فحصه كالتالي if ($_POST['agree_terms']) { echo 'Selected' }else{ echo 'There Is No Selected Options' }
  7. يطلب منك في هذا السؤال ، أن تطبع الارقام في سطر واحد بدون الفاصلة التي بينهم (-) كما هو بالشكل الآتي : 1 2 3 4 5 6 7 8 9 10 هذا السؤال يمكن حله باستبدال الفاصلة بفراغ Space
  8. المخططات الخوارزمية هي خطوات لحل مشكلة معينة ، وينعكس تلك الخطوات بأكواد برمجية لحل مشكلة برمجية معينة مثال صغير : لنفترض أنه لديك قائمة من المهام ، وتريد أن تعرف ما اذا كانت بعض المهام لم تنفذ بعد ، في هذه الحالة ستقوم بجلب جميع المهام وتصفية المهام غير المنفذة منها وفي حال لم يكن لديك أي مهام غير منفذة ستغلق الحلقة . برمجياً تنفذ بهذا الشكل : $job = 0; if ($job !=) { $job += 1; }else{ $job = 'All Jobs Are Done'; } return $job; في هذا المثال افترضنا أن المهام غير المنفذة هي 0 قبل بداية الخوارزمية ، ثم دخلنا في IF Condition لتصفية المهام غير المنفذة بالمختصر المفيد : الخوارزميات هي مراحل وخطوات لحل المشاكل ، وتنعكس ذلك في البرمجة كأكواد تكتب لحل مشكلة برمجية معينة .
  9. وفرت Laravel هذه الخاصية من خلال Directive كما هو موضح هنا @php $name = "Ahmed" @endphp ويمكنك طباعة المتغير من خلال Blade كما هو موضح {{ $name }}
  10. هناك Package جاهزة من laracasts ، هذه ال Package تدعى utilities ، ستقوم بتنزيلها من خلال ال composer من خلال هذا الأمر . composer require laracasts/utilities وتستطيع أستخدامها قبل ما تنفذ return ل view ، مثل هذا Javascript::put([ 'name' => 'Ahmed', 'Age' => 23, ]); ثم ذهبت الى ملف js وقمت بطباعة console.log(name); سيظهر الناتج هو Ahmed . وكذلك يمكنك تمرير array بشكل طبيعي من Blade الى JS .
  11. يمكنك أن تستخدم max Function DB::table('products')->find(DB::table('products')->max('id')); هذه ال function تجلب لك أكبر id موجود في products table . والحل الثاني أنك تجلب جميع البيانات بالترتيب التنازلي Desc ، ثم تجلب أول عنصر من البيانات $products = Product::orderBy('id', 'desc')->first(); ولكن من ناحية ال performance الطريقة الاولى أفضل . ولاحظ في الطريقة الاولى ستتعامل مع Query Builder
  12. لا يمكنك تنفيذ هذا الأمر على Routes تحتوي على closure function ، أمامك حل وهو تنفيذ هذا الأمر php artisan route:list سيعرض لك كل ال routes في موقعك ، وعندها ستجد أي ال Routes تحتوي على closure function ، وقم بتغيرها الى Controller وبهذا ستحل المشكلة
  13. يمكنك تعيين ال Cookie من خلال queue function كما هو موقع بالأسفل Cookie::queue(); queue function تأخذ العديد من ال params مثل Cookie_name , Value, Expired Date For Cookie , Path , Domain , secure , HTTP only Cookie::get('Cookie_name');
  14. إذا كان لديك بداخل الفورم الخاص بك احدى العناصر التالية(checkBox - select) فأنت بحاجة للتحقق من قيمة الاختيار سواء كان true ,false أو yes , no او 1,0 ولكن المشكلة هنا ان الRequest قد يقوم باعطاءك هذه القيمة (string) , هنا يمكنك استخدام الميثود (boolean) : مثال: $archived = $request->boolean('archived'); الmethod التالي سيقوم بإرجاع true لكل القيم في المجال التالي (1, "1", true, "true", "on", "yes") وسيقوم بإرجاع false لجميع القيم الأخرى
  15. تخزين الوقت سيكون شبيه بتخزين Created_at ، updated_at بإمكانك أنشاء last_login_at في ملف migration، كما هو موضح هنا $table->timestamp('last_login_at'); بعدها ستذهب الى ملف يسمى auth/login.blade.php ، ستضع هذا ال input بداخل ال Form <input type="hidden" name="last_login_at" value="{{ Carbon::now() }}"> هنا يخزن قيمة الوقت الحالي اثناْ كل عملية تسجيل دخول ، بعدها ستذهب الى ملف app/Request/auth/LoginRequest ستجد authenticate Function ، وتمرر القيمة من خلال attempt بهذا الشكل if (! Auth::attempt($this->only('email', 'password', 'last_login_at'), $this->boolean('remember'))) { RateLimiter::hit($this->throttleKey()); } هكذا يتم تخزين وقت تسجيل الدخول للمستخدم .
  16. ستقوم بعمل request ، ومن خلاله ستفحص اذا ما تم اختيار ال option الاول او الثاني if ($request->country == 1 || $request->country == 2) { $request->validate([ 'city' => ['required'] ]); } ممكن أيضاً تفعيل ال required attribute في input tag <input type="text" name="city" required/> ولكن هذا الحل ليس منطقياً ، هناك حل اخر وبسيط جدا وهو ان تجعل الاختيار الثالث هو الاساسي والمختار بشكل طبيعي <option value="3" selected>third</option> وفي حال تم اختيار option اخر تقوم بتفعيل ال validate ل city كما في المثال الذي بالاعلى
  17. الأمر بسيط : ممكن تضع هذا ال directive بداخل ال title tag <title> @yield('page_title') </title> وفي كل صفحة من صفحات المشروع ستقوم باستدعاء هذا ال Directive @section('page_title', 'Home Page') هنا يقوم ال blade بفحص ما اذا كان يوجد page_title في ال main layout ، ووضع بدالة القيمة الثانية كما بالمثال Home Page ، هكذا تقوم لتسمية جميع صفحات الموقع بكل سهولة
  18. الأمر بسيط Interface بيكون بداخله أكثر من methods و functions بيتم الاعتماد عليهم في أكثر من ملف كما يُرى في ملفات laravel انه ال controller بتعمل extends من global Interface، وبيتم من خلاله اخذ ال methods والتعامل معها. Class بيتم فيه عمل methods مختلفه نستخدمها مره واحده في ملف واحد.
  19. ببساطة يطلب منك هذه الخطوات : 1 - الصورة الأمامية للهوية ويجب الانتباه الى وضوح الصورة والبيانات التي بالهوية 2 - الصورة الخلفية للهوية وكذلك يجب الانتباه لوضوح البيانات 3 - صورتك الشخصية وانت تحمل الهوية وكذلك أمر الوضوح يجب التركيز عليه ستأخذ عملية التأكد من بياناتك 48 ساعة كحد أقصى في حال واجهتك مشكلة يمكنك مراسلة قسم الدعم في منصة حسوب من هنا
  20. <?php /** احذف جميع الملفات في الدليل */ $path = '/all_images' // الطريقة الأولى لحذف الملفات في الدليل function clean_dir($path) { if (!is_dir($path)) { if (is_file($path)) { unlink($path); } return; } $p=opendir($path); while ($f=readdir($p)) { if ($f=="." || $f=="..") continue; clean_dir($path.$f); } rmdir($path); return; } // ?> نستخدم unlink وهي function تعمل على أفراغ المسار المطلوب ، المثال يعرف $path ، فوق ال function ثم يمرر المسار كتغير
  21. عند إنشاء model يمكنك انشاء Controller & migration بنفس الأمر وذلك من خلال php artisan make:model Student -mcr بإمكانك تضيف العلامة mcr والتي تعني m : migration c : controller r : resource وال Request ممكن بداخل ال methods الموجودة في ملف ال controller تتعامل معها
  22. في حال كنت تستخدم Laravel Framework : يجب الربط مع خدمة pusher التي تعتمد على websocket ايضاً يمكنك الاعتماد على خاصية Broadcast ، بحيث تتعرف على كامل الاجراءات التي تحدث خلال ارسال واستقبال الرسائل . خدمة pusher بتوفرلك API ، بإمكانك ربطها في ملف env ، ستجد هناك متغيرات كهذه PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET= PUSHER_APP_CLUSTER= ملخص الحديث أن ال pusher بتوفرلك RealTime MSG ، وهذا المطلوب في المحاثات أنت تريد أن يتم المراسلة تحت بند RealTime
  23. هناك method تدعى carbon في laravel $table->date('expiry_date')->default(Carbon::now()); في هذا ال method يقوم بتحويل الوقت الحالي ويشبه ما يتم تخزينه في Database ، ويمكنك أيضا استخدام Carbon مع الأيام مثل : Carbon::now(); Carbon::today(); Carbon::yesterday(); وكذلك يمكنك إستخدامها مع الوقت الزمني لدولة معينة مثل : Carbon::tomorrow('Europe/London');
  24. يجب عليك إضافة enctype في ال Form Tag <form method="POST" action="{{route('allPosts.new')}}" enctype="multipart/form-data"> @csrf </form> هذا يستقبل الملفات عند إرسالها في ال Request عند اخراج ال request في dd ستجد احد الخانات تدعى Converted File ، وهو الملفات المحولة والمجهزة للتخزين بداخلها الملف ومساره وكذلك نفس الملف لكن مشفر ، في الغالب ستجد الملف هناك . وليس في خانة ال request .
×
×
  • أضف...