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

Waleed Alfakiat

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

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

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

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

    2

أجوبة بواسطة Waleed Alfakiat

  1. يمكنك إيقافها بشكل مؤقت من خلال تعطيل قيمة المتغير timestamps

    ->timestamps = false;

     في النموذج المستخدم بعملية التعديل قبل القيام بحفظ التغييرات

    ليصبح هكذا:

    $user = User::find(1);
    $user->timestamps = false;
    $user->age = 10;
    $user->save();

    بهذه الطريقة, تم إيقاف timestamps مؤقتًا في هذا الكائن فقط

    • أعجبني 1
  2. يمكنك مشاركة المشروع مع الأجهزة الأخرى بداخل الشبكة من خلال تشغيل الخادم وتعيين المُضيف

    0.0.0.0

    حتى يصبح الجهاز (خادم) ويتيح الوصول من خلال الأجهزة الأخرى

    فنقوم بتنفيذ الأمر الخاص بتشغل الخادم في Laravel:

    php artisan serve --host 0.0.0.0

    بهذه الطريقة يمكننا الوصول إلى البرنامج من خلال الرابط (عنوان IP الخاص بالجهاز المشغل للبرنامج):

    http://192.168.1.101:8000

    حيث أن المنفذ 8000 هو الافتراضي عند تشغيل الخادم في Laravel, ولتغييره للوصول إلى البرنامج بشكل مباشر

    نقوم بتغيير المنفذ إلى 80 وهو الإفتراضي في بروتوكول HTTP عن طريق تمرير قيمة المنفذ في أمر التشغيل:

    php artisan serve --host 0.0.0.0 --port 80

    ليصبح الرابط للوصول إلى البرنامج عن طريق عنوان IP الخاص المضيف داخل الشبكة مباشرة

    http://192.168.1.101

     

    • أعجبني 1
  3. من خلال ملف

    php.ini

    ( حيث يمكنك الوصول إليه من خلال خيار البحث في شريط المهام )

    نقوم بالبحث في الملف عن خيار

    max_execution_time

    المسؤول عن المدة الزمنية المحددة لتنفيذ البرنامج, فنقوم بتغيير القيمة إلى الزمن المطلوب بالثواني (150 ثانية), هكذا:

    ;;;;;;;;;;;;;;;;;;;
    ; Resource Limits ;
    ;;;;;;;;;;;;;;;;;;;
    
    max_execution_time = 150
                         ^^^

    ثم نقوم بحفظ التغييرات وإعادة تشغيل الخادم  appache من خلال الأمر:

    service apache2 restart

     

    • أعجبني 1
  4. تدعم Laravel إنشاء استثناءات لـ CSRF Token عن طريق الملف

    App\Http\Middleware\VerifyCsrfToken 

    فنقوم بإضافة المسارات التي نرغب باستثنائها بشكل مصفوفة بداخل المتغير

    protected $except = [] //array.

    فمثلًا لو أردنا إضافة استثناء للمسار

    127.0.0.1/demo

    يكون الاستثناء بهذا الشكل

    protected $except = [
    	'/demo',
    ]

     

    • أعجبني 2
  5. يمكنك إعداد هذا الخيار في ملف migration  الخاص بتهجير البيانات الفرعية عن طريق القيد

    ->onDelete('cascade')

    فنقوم بإضافة القيد على حقل foreign_key المرتبط بالنموذج الأساسي

    ...
    $table->foreign('user_id')
          ->references('id')->on('users')
          ->onDelete('cascade');
    ...

    وهذا يعني حذف السجل الفرعي عند حذف السجل الرئيسي المرتبط به تلقائيًا

    • أعجبني 1
  6. يتم تجهيز القالب الرئيسي ونسميه

    layout.blade.php

    ويكون محتواه:

    <html>
      <html>
      @yield('content')
    </html>

    بحيث أنّ

      @yield('content') // هي الجزئية التي سيحل مكانها القالب الفرعي

    والقالب الفرعي نسميه:

    index.blade.php

    ويحتوي على

    @extends('layout') 		//  -> 1
    
    @section('content')		// -> 2
      <html here>			// -> 3
    @endsection

     حيث أنّ:

    1: استدعاء القالب الرئيسي

    2: اسم الجزئية التي سيتم عرض القالب الفرعي بداخل القالب الرئيسي

    3: محتوى القالب الفرعي

    وفي المتحكم يتم استدعاء القالب الفرعي ليظهر بصورته النهائية:

    return view('index');

     

    • أعجبني 1
  7. يمكنك التحكم في بيانات الاتصال في قاعدة البيانات من خلال الدالة:

    Config::set('key', 'value');

    حيث يتم تعيين البيانات الجديدة من خلال تمريرها إلى الدالة كالتالي:

    Config::set("database.connections.mysql", [
        "host" => "new_host",
        "database" => "new_database",
        "username" => "new_username",
        "password" => "new_password"
    ]);

    بعد ذلك يتم اجراء العمليات (إضافة, تعديل, حذف, قراءة) في قاعدة باستخدام الاتصال الجديد الذي تم تعيينه

    • أعجبني 1
  8. تأكد من أنّ المشغل الخاص بقاعدة البيانات مفعّل

    وذلك في ملف php.ini

    ;extension=php_pdo_mysql.dll
    ^

    قم بمسح إشارة ";" الموجودة في بداية السطر لتفعيل المشغل

     

    وإذا لم تعمل بالشكل الصحيح أو لم تجدها, فعليك تثبيت المكتبة عن طريق:

    1- معرفة إصدار php الخاص لديك من خلال:

    php -v

    2- بعد ذلك قم بتحميل المكتبة الموافقة للإصدار (إحدى هذه المكتبات):

    php 7.0 sudo apt-get install php7.0-mysql
    php 7.1 sudo apt-get install php7.1-mysql
    php 7.2 sudo apt-get install php7.2-mysql	
    php 7.3 sudo apt-get install php7.3-mysql
    

    3- ومن ثمّ إعادة تشغيل Xampp أو تنفيذ الأمر:

    service apache2 restart

     

    • أعجبني 1
  9. من خلال المتحكم, قم بتمرير قيم JSON التي تم تحويلها على شكل مصفوفة إلى view

    return view('name')->with('leads', json_decode($leads, true));

    وفي ملف blade نقوم بطباعة المصفوفة عن طريق foreach لقراءة كل قيمة لوحدها:

    @foreach($leads['member'] as $member)
        Member ID: {{ $member['id'] }}
        Firstname: {{ $member['firstName'] }}
        Lastname: {{ $member['lastName'] }}
        Phone: {{ $member['phoneNumber'] }}
    
        Owner ID: {{ $member['owner']['id'] }}
        Firstname: {{ $member['owner']['firstName'] }} 
        Lastname: {{ $member['owner']['lastName'] }}
    @endforeach

     

    • أعجبني 1
  10. للحصول على الأخطاء التي قد تحصل عند إضافة سجل جديد

    نقوم بوضعها بداخل try & catch

    حيث تقوم بالحصول على الأخطاء حين حدوثها

    try{
    	$user = new User;
    	$user->fields = $value;
    	$user->save(); // true or false
    }catch(\Exception $e){
        echo $e->getMessage();   // للحصول على  معلومات الخطأ
    }

    ومن خلالها يمكننا معرفة المعلومات المتعلقة بالخطأ من خلال

    echo $e->getMessage();

     

    • أعجبني 2
  11. من خلال Laravel يمكنك الحصول على جميع المدخلات من خلال الدالة:

    Input::all();

    ويمكنك إعادة التوجيه إلى الصفحة السابقة وتمرير القيم عن طريق:

    return Redirect::back()->withInput($values);

    فما علينا فعله هو إعادة التوجيه مع تمرير القيم التي حصلنا عليها كالآتي:

    return Redirect::back()->withInput(Input::all());

     

    • أعجبني 1
  12. في الإصدار الجديد من Laravel -  8

    لا يتم تطبيق namespace للوصول إلى المتحكم بشكل مباشر, بل يجب استدعاؤه عن طريق كتابة المسار كاملًا, كالآتي:

    Route::get('register', 'App\Http\Controllers\RegisterController@register');

    أو أن تقوم بإضافة namespace يدويًا وذلك بإضافة مسار الكلاس في ملف الموجهات كالآتي:

    use App\Http\Controllers\RegisterController;	
    
    Route::get('/register', [RegisterController::class, 'register']);

     

    • أعجبني 1
  13. سبب الرسالة هو أنّ MySQL يحاول الاتصال بالخادم عن طريق Socket وهذا غير مدعوم في  الخادم الذي تم رفع النظام عليه,

    فقم بتغيير بيئة العمل في Laravel عن طريق الأمر التالي:

    php artisan migrate --env=production

     

    وهنالك حل آخر:

    وهو تغيير قيمة DB_HOST الخاصة بقاعدة البيانات في ملف .env من 'localhost' إلى '127.0.0.1'

    ...
    DB_HOST=127.0.0.1
    ...

    بسبب أنّ الخادم الاستضافة غير معرف على عنوان localhost ولذلك وجب تغييره إلى 127.0.0.1

    • أعجبني 1
  14. تتم برمجة المواقع التفاعلية باستخدام مكتبات JavaScript للتفاعل مع المستخدم, بالإضافة للغات البرمجة Php, Python

    وإذا أردت أحد المبرمجين لإنجاز المشروع, فيمكنك طلب مبرمج مستقل عن طريق

    https://mostaql.com/

  15. توفر لك Laravel إمكانية الحصول على جميع  routes التي قمت بإنشائها عن طريق Route::getRoutes()

    بحيث تقوم بإرجاع routes على شكل RouteCollection,

    ومن خلال كل عنصر يمكنك قراءة المسار عن طريق $route->getPath()

    فيصبح الشكل كالآتي:

    $routes = Route::getRoutes();
    
    foreach ($routes as $value) {
        echo $value->getPath();
    }

     

    • أعجبني 1
  16. يمكنك إنشاء حقل جديد في جدول موجود من قبل عن طريق استخدام خيار –table الذي نمرر من خلاله اسم الجدول الموجود عند استخدام make:migration لإضافة الحقول الجديدة إليه

    php artisan make:migration users_add_paid --table=users

    وسيتم إنشاء ملف migration  جديد باسم users_add_paid نقوم بداخله بإضافة الحقول التي تريدها في دالة up(), كالتالي:

    public function up(){
        Schema::table('users', function($table) {
            $table->integer('paid');
        });
    }

    وفي دالة down() نقوم بإضافة الكود الخاص بحذف هذا الحقل عند عمل rollback

    public function down()
    {
        Schema::table('users', function($table) {
            $table->dropColumn('paid');
        });
    }	

    وبعد تجهيز الحقول, نقوم بتشغيل  migration لتطبيق التعديلات

    php artisan migrate

     

    • أعجبني 1
  17. يمكنك في Laravel إدراج عدة جداول بجملة واحدة, وذلك عن طريق تجميعهم في مصفوفة وتمريرها في النموذج الخاص بالجدول, كالتالي:

    $data = [
        ['user_id'=>'1', 'subject_id'=> 140],
        ['user_id'=>'2', 'subject_id'=> 270],
        ...
    ];
    Model::insert($data);

    وفي البرنامج الخاص بك, فإنّ البيانات فعليًا مخزنة في المتغير $query فنقوم مباشرة بإدراجها في قاعدة البيانات :

    Model::insert($query);

     

    • أعجبني 2
×
×
  • أضف...