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

Waleed Alfakiat

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

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

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

  • عدد الأيام التي تصدر بها

    2

كل منشورات العضو Waleed Alfakiat

  1. إذا لم تعمل '\n' قم بإضافة سطر جديد باستخدام ترميز ASCII الخاص به "%0A" ليصبح المحتوى بهذا الشكل: text: 'إسم الشركة/المورد:' + text1 + "%0A" + ' - إسم صاحب الشركة:' + text2 + "%0A" + ...
  2. السلام عليكم صديقي, لا يوجد وقت محدد أو فترة زمنية محددة لتعلم البرمجة فيمكنك تخصيص وقت لتعلم المهارات البرمجية فكل مهارة تستغرق وقت وجهد مختلف, وطالما أن لديك الوقت الكثير, فيمكنك متابعة الدورة والجلوس على برمجة مشاريع بسيطة وأفكار تطبيقًا لما تعلمته, فالفائدة في التطبيق وليس في مشاهدة فقط
  3. بعد إدراج القيم الجديدة في قاعدة البيانات, يتم تخزين الرقم المعرف الذي تم إنشاؤه حديثًا في الكائن الذي استخدم في حفظ البيانات كالتالي: $data->save(); // حفظ القيم في قاعدة البيانات $data->id; // يتم تخزين رقم المعرف تلقائيًا ويمكنك ادراجه في JSON كالتالي: return response()->json(array('success' => true, 'id' => $data->id), 200);
  4. تدعم Laravel الاستعلام المتعدد عن طريق تمرير مصفوفة تحتوي على الشروط بهذا الشكل: ['one', '=', 'value' ] ويتم الاستعلام باستخدام الشروط المتعددة بهذه الطريقة: $results = User ::where([ ['one', '=', 'value_1'], ['two', '<>', 'value_2'], [COLUMN, OPERATOR, VALUE], ... ]) وبهذه الطريقة يتم الاستعلام مع الشروط المطلوبة دفعة واحدة دون الحاجة إلى تكرار استدعاء where
  5. قم تجربة "\n" فهي تقوم بإضافة سطر جديد اثناء طباعة المخرجات فتصبح كالآتي text: 'إسم الشركة/المورد:' + text1 + "\n" + ' - إسم صاحب الشركة:' + text2 + "\n" + ...
  6. ملف WOW.js يحتوي على أخطاء ومشاكل, بحيث تظهر جميع التأثيرات بنفس الوقت أرفقت لك نسخة محدثة من WOW.js بحيث تظهر التأثيرات عند الوصول إليها, ضعه في مجلد js وما عليك إلا استدعاء ملف WOW2.js مباشرة, وبداخله يوجد إنشاء الكائن لتطبيق التأثيرات بدلًا من <script src="./js/WOW.js"></script> قم باستبداله <script src="./js/WOW2.js"></script> WOW2.js
  7. يمكنك استخدام makeHidden للقيام بإخفاء الأعمدة التي لا تريدها, فنقوم بالاستعلام عن البيانات التي نريدها, ثم نُطبق الدالة makeHidden ونحدد الأعمدة التي لا نريدها في النتيجة $res = Model::where('users')->get(); $res->makeHidden(['pseudo', 'email', 'age', 'created_at']); return $res; فبهذه الطريقة تقوم بإخفاء قيم (البريد الإلكتروني والعمر ... إلخ) عند الحاجة هذه طريقة جيدة, ولكن توجد طريقة أخرى أيضًا تُسهل عليك الإجراءات إذا كنت ترغب بإخفاء الأعمدة بشكل دائم وهي التوجّه إلى الـ model الخاص بالمستخدمين 'User' (أو أي نموذج ترغب بإخفاء أعمدة بداخله) ويوجد هنالك المتغير protected $hidden = [...] حيث يحتوي على مصفوفة باسماء الحقول التي لن تظهر عند الاستعلام ونقوم بإضافة الحقول المراد إخفائها في المتغير, لتصبح كالآتي: protected $hidden = [ 'password', 'remember_token', 'pseudo', 'email', 'age', 'created_at', ]; ثم نقوم بالاستعلام عن البيانات بشكل مباشر عن طريق نموذج User $res = User::all(); return $res; // الحقول التي حددناها أنّها مخفية لن تظهر في النتيجة
  8. {{ }} تقوم بوظيفة htmlspecialchars وذلك للحماية من XSS {!! !!} تقوم بطباعة القيم كما هي بدون استخدام htmlspecialchars
  9. لا يمكن الوصول إلى session في construct() بسبب أنّ construct يعمل قبل middleware ولحل هذه المشكلة نقوم بالتحقق من الـ middleware بداخل الـ construct كالآتي: protected $user; public function __construct() { $this->middleware(function ($request, $next) { $this->user = Auth::user(); return $next($request); }); }
  10. Calling a function: هي عملية استدعاء الدّالة مثل getCommits(); و passing a reference: هو مصطلح لتمرير المصفوفات والكائنات لهذه الدالة, وأي تغيير يحدث على المصفوفات والكائنات أثناء تنفيذ الدالة, يُطبق هذا التغيير في المصفوفة والكائن الأساسي. وهذا المطلح عكس passing a value: ففي هذه الحالة, يتم إرسال قيمة المتغير (نص, رقم, قيمة منطقية) وأي تغيير عليه, لا يتأثر قيمة المتغير الأساسي مثال: passing a value function square(x) { x = x * x; return x; } var y = 10; var result = square(y); console.log(y); // 10 لم تتغير القيمة الأساسية console.log(result); // 100 قيمة تنفيذ الدالة passing a reference: function turnOn(machine) { machine = { isOn: true }; } var computer = { isOn: false }; turnOn(computer); console.log(computer.isOn); // true; بسبب أنّ الدالة قامت بتغيير قيمة الكائن
  11. نقوم بإضافة class باسم wow للعنصر المراد تأخير ظهور التأثيرات عليه <div class="wow"> <!-- المحتوى --> </div> ثم نقوم بتخصيص نوع الحركة, ولتكن مثلا bounceInUp <div class="wow bounceInUp"> <!-- المحتوى --> </div> ثم نفعّل خيار التأخير عند إنشاء الكائن wow var wow = new WOW( { ... boxClass: 'wow', // wow: اسم الكلاس الذي سيطبق عليه الحركة عند الوصول إليها } ) wow.init();
  12. الأفضل استخدام DB::transaction خارج try & catch وجعل الأوامر DB::insert DB::commit بداخل try والأمر DB::rollback في catch ليصبح البرنامج كالآتي: DB::beginTransaction(); try { DB::insert(...); DB::insert(...); DB::insert(...); DB::commit(); // كل شيء يعمل على ما يرام } catch (\Exception $e) { DB::rollback(); // هنالك خطأ ما أثناء التنفيذ } وبهذه الإجراءات, نتفادى أي خطأ قد يحدث في قاعدة البيانات سببه المستخدم
  13. نقوم بتحويل النمط من Carbon إلى String عن طريق الدالة التالية Carbon::parse($last_visit)->format('Y-m-d H:i'); مع تغيير صيغة الوقت والتاريخ الذي تريده فمثلًا Y: السنة m: الشهر d: اليوم H: الساعة i: الدقيقة
  14. امسح مجلد node_modules قم بتنفيذ هذا الأمر npm install --global cross-env ثم التوجه إلى ملف package.json , ثمّ جزء devDependencies وحذف "cross-env": "^5.0.1", كما هو موضح ... "devDependencies": { "cross-env": "^5.0.1" ^^^^^^^^^^^^^^^^^^^^^ } ... ثم ننفذ هذين الأمرين: npm install --no-bin-links npm run dev
  15. التوجيه باسم "user.profile" ينقصه قيمة {username} قم بتمرير القيمة عند استدعاء التوجيه في ملف view ... <li><a href="{{ route('user.profile') }}">Profile</a></li> ... ليصبح بهذا الشكل <li><a href="{{ route('user.profile', [ 'username' => Auth::user()->nickname ] ) }}">Profile</a></li>
  16. قم بتحديث اصدار React لآخر اصدار react-native upgrade
  17. يمكنك استخدام Recursive كالآتي: public function childrenAccounts() { return $this->hasMany('Account', 'act_parent', 'act_id'); } public function allChildrenAccounts() { return $this->childrenAccounts()->with('allChildrenAccounts'); } واستدعاء الأبناء هكذا: $account = Account::with('allChildrenAccounts')->first(); $account->allChildrenAccounts; $account->allChildrenAccounts->first()->allChildrenAccounts; ولاستدعاء الحسابات التي لا تحتوي على أبناء, فنقوم بإضافة الدالة الآتية public function scopeChildless($q) { $q->has('childrenAccounts', '=', 0); } وعملية الاستدعاء تكون كالتالي $childlessAccounts = Account::childless()->get();
  18. لتبسيط المشكلة, نبدأ باستخدام حلقة for لاستخدامها في جدول الضرب
  19. استخدم الدالة asset() للوصول لمسار الملف: <link href="/css/main.css" rel="stylesheet"> لتصبح هكذا: <link href="{{ asset('/css/main.css') }}" rel="stylesheet" >
  20. يمكنك تعديل وقراءة البيانات في ملف .env عن طريق config() بحيث تقوم بالتعديل على البيانات كالآتي: config(['database.connections.mysql.host' => '127.0.0.1']); // القيمة الجديدة أو قراءة القيم الحالية: config('database.connections.mysql.host');
  21. باستخدام هذه الطريقة يصبح الوصول للملف وتحميله عن طريق المسار الكامل للملف فيصبح بهذا الشكل http://sample.com/download/file.pdf
  22. قم بتضمين CSRF token مع Ajax ليصبح هكذا data: { "_token": "{{ csrf_token() }}", ... }
  23. في ملف index.php نقوم بإضافة $app->bind('path.public', function() { return __DIR__; }); ليصبح بهذا الشكل ... /* |-------------------------------------------------------------------------- | Turn On The Lights |-------------------------------------------------------------------------- | | We need to illuminate PHP development, so let us turn on the lights. | This bootstraps the framework and gets it ready for use, then it | will load up this application so that we can run it and send | the responses back to the browser and delight our users. | */ $app = require_once __DIR__.'/../bootstrap/app.php'; $app->bind('path.public', function() { return __DIR__; }); ... ثمّ التوجه إلى الملف \App\Providers\AppServiceProvider ونقوم بإضافة مسار الملف الجديد في الدالة register لتصبح هكذا public function register() { // ... $this->app->bind('path.public', function() { return base_path('public_html'); }); }
  24. قم بتحديد الاصدار المطلوب عن طريق laravel new blog --5.1 أو composer create-project laravel/laravel="5.1.*" blog بهذه الطريقة سيجلب الإصدار رقم 5.1 قم بتغييره كما تشاء
×
×
  • أضف...