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

Hafsa Aly

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

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

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

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

    4

أجوبة بواسطة Hafsa Aly

  1. بتاريخ 2 ساعة قال Mustafa Suleiman:

    رسالة الخطأ تعني أنك تحاول الوصول إلى مفتاح "id" في مصفوفة غير موجودة، وذلك يحدث هذا لعدة أسباب منها:

    • المفتاح "id" غير موجود في المصفوفة التي تحاولين الوصول إليها.
    • المفتاح "id" موجود في المصفوفة، ولكن قيمته فارغة.
    • المفتاح "id" موجود في المصفوفة، ولكن قيمته ليست من النوع الصحيح.

    ومن المحتمل أن يكون سبب الخطأ هو أنك تحاولين الوصول إلى مفتاح "id" في مصفوفة بيانات غير موجودة، وتستطيعي التحقق من ذلك عن طريق التحقق من أن المصفوفة تحتوي على مفتاح "id"، من خلال استخدام وظيفة array_key_exists().

    ولنفترض أنك تحاولين الوصول إلى مفتاح "id" في مصفوفة بيانات تسمى data، سيكون التحقق كالتالي:

    if (array_key_exists('id', $data)) {
        // المفتاح موجود
    } else {
        // المفتاح غير موجود
    }

    وإن كان المفتاح موجودًا، فيمكننا التحقق من قيمة المفتاح عن طريق استخدام وظيفة isset().

    if (isset($data['id'])) {
        // قيمة المفتاح غير فارغة
    } else {
        // قيمة المفتاح فارغة
    }

    وفي حال كانت قيمة المفتاح فارغة، فيمكنك محاولة ملؤها بقيمة صالحة عن طريق استخدام وظيفة set().

    $data['id'] = 1;

    وفي حال كانت قيمة المفتاح ليست من النوع الصحيح، فتستطيعي محاولة تحويلها إلى النوع الصحيح بواسطة وظيفة intval() أو floatval() أو strval().

    $data['id'] = intval($data['id']);

     

    ولكن لم افهم كيف اضع انا فيه قيمة  

    هذا الكود الذي يظهر مع رسالة الخطا 

    <?php

     

    namespace Livewire\HydrationMiddleware;

     

    use Livewire\Livewire;

    use function Livewire\str;

     

    use Illuminate\Validation\ValidationException;

    use Livewire\Exceptions\DirectlyCallingLifecycleHooksNotAllowedException;

     

    class PerformActionCalls implements HydrationMiddleware

    {

        public const PROTECTED_METHODS = [

            'mount',

            'hydrate*',

            'dehydrate*',

            'updating*',

            'updated*',

        ];

     

        public static function hydrate($unHydratedInstance, $request)

        {

            try {

                foreach ($request->updates as $update) {

                    if ($update['type'] !== 'callMethod') continue;

     

                    $id = $update['payload']['id'];

                    $method = $update['payload']['method'];

                    $params = $update['payload']['params'];

     

                    throw_if(

                        str($method)->is(static::PROTECTED_METHODS),

                        new DirectlyCallingLifecycleHooksNotAllowedException($method, $unHydratedInstance->getName())

                    );

     

                    $unHydratedInstance->callMethod($method, $params, function ($returned) use ($unHydratedInstance, $method, $id) {

                        Livewire::dispatch('action.returned', $unHydratedInstance, $method, $returned, $id);

                    });

                }

            } catch (ValidationException $e) {

                Livewire::dispatch('failed-validation', $e->validator, $unHydratedInstance);

     

                $unHydratedInstance->setErrorBag($e->validator->errors());

            }

        }

     

        public static function dehydrate($instance, $response)

        {

            //

        }

    }

    اعتقد ان ال  livewire  لايعمل 

  2.  قمت بعمل open source laravel hospital management system down load  from git 

    وقمت بتشغيله  واشتغل تمام ولكن عند دخولي لل  admin panel  ومحاولة عمل اي اضافة او تعديل او حذف  تقنية wire live   لاتتعمل وحاولت كثيرا ولم اصل للحل

    هذه رسالة الخطا  Undefined array key "id"hospitalMS.rarhospitalMS.rarhospitalMS.rarhospitalMS.rar

    • أعجبني 1
  3. السلام عليكم ورحمة الله

    طلب مني laravel project  عبارة عن  crud  لتسحيل الشكاوى للموظفين فيديو باصوت والصورة  اولا تقوم بتسجيل بيانات الموظف العادية ويكون هناك input control تقوم بتفح الكاميرا وتسجيل الفيديو من خلال البرنامج حيث انني لااريد تسجي الفيديو اولا ومن ثم رفعه لا اريد ان يتم تسجيل الفيديو من البرنامج ومن ثم يتم تخزينه في الdb , وبعد ذلك يتم عرضه البيانات والفيديو المسجل فهل من مساعده او افكار تساعدني وشكرا

    • أعجبني 2
  4. عند كتابة الامر git pull  لسحب التعديلات التي يقوم بها مدير المشروع احيانا تاتي كل هذه التعديلات واحيانا لاتاتي فما السبب ع الرغم انها تعديلات في الاكواد وانه مفتوح لي التعديل ايضا فما السبب

    • أعجبني 1
  5. بتاريخ 6 ساعة قال Adnane Kadri:

    يبدو أن تثبيت MariaDB الخاص بك به بعض المشاكل (إدخالات فاسدة). لا يمكن أن يتسبب phpMyAdmin في حدوث ذلكه.

    جرب اصلاح الخطأ عن طريق:

    • النقر فوق قاعدة بيانات mysql في القائمة اليسرى،
    • ثم جدول global_priv.
    • أخيرًا، انتقل إلى علامة التبويب "العمليات" الموجودة في الجزء العلوي.
    • قم بالنزول الى جزء صيانة الجدول "Table maintenance"
    • اضغط repair link في تلك الصفحة لإصلاح الجدول global_priv.

    يفترض ان يحل هذا المشكلة،

    شكرا لك لقد حلت المشكله ولكني لم افهم قصدك ماعلاقة mariaDB  ب phpmadmin

  6. بتاريخ On 5‏/3‏/2023 at 10:14 قال Hafsa Aly:

    اكثر من رائع شكرا لك ولكن يبقى لي كيفية عمل  store  لل request  القادم اليا من  create product   للمنتج المترجم والغير مترجم

    ارجو الرد

  7. بتاريخ 21 ساعة قال Adnane Kadri:

    حزمة laravel-translatble من spatie تقوم أصلا بإعادة الترجمة الموافقة للغة المفعلة الحالية عن طريق قراءة المفتاح بشكل مباشر:

    $product->name;

    ولا حاجة لاستعمال مفتاح اللغة الحالية في ذلك.

    يمكنك على كل حال استعمال التابع getTranslation لقراءة الترجمة الموافقة للغة معينة:

    $product->getTranslation('name', 'en');

    أما عن السياق الذي تستخدمينه في جلب الترجمات أو وضعها فهو سياق لا يختص بالحزمة التي تستعملينها، فالتوابع الموصوفة موجودة في حزمة  laravel-translatable من Astrotomic في حين أن السياق المطلوب هو ذلك الخاص ب laravel-translatble من spatie. والتوابع الموصوفة في الأولى تختلف عن دلالة استخدامها في الثانية وهو ما ينتج المشكلة التي تحدث معك بطبيعة الحال.

    تعرفي على الفروقات ما بينهما عن طريق توثيقاتهما الرسمية:

     

    Screenshot (119).png

    Screenshot (120).png

    Screenshot (121).png

    • أعجبني 1
  8. بتاريخ 19 ساعة قال Mustafa Suleiman:

    يمكن تخزين القيم التي لا تحتاج إلى ترجمة بشكل عادي في العمود نفسه دون استخدام JSON. أما بالنسبة للأعمدة التي تحتاج إلى ترجمة، فيمكن استخدام JSON لتخزين النص المترجم لكل لغة في مفتاح يمثل اسم اللغة.

    على سبيل المثال، يمكن إنشاء عمود "product_name" و "product_description" في الجدول الخاص بالمنتجات في قاعدة البيانات. يمكن تخزين النص المترجم لكل لغة باستخدام JSON على النحو التالي:

    {
      "ar": "اسم المنتج",
      "en": "Product Name"
    }

    يمكن تحديد القيمة المخزنة باستخدام العنصر الفرعي "ar" للغة العربية والعنصر الفرعي "en" للغة الإنجليزية.

    لعرض القيم في تطبيقك، يمكنك استخدام حزمة "spatie/laravel-translatable" في Laravel لترجمة النصوص بسهولة. يمكنك استخدام الوظيفة "translatable()" لتحديد الأعمدة التي تحتوي على النص المترجم واستخدام الدالة "translate()" للوصول إلى النص المترجم للغة المحددة. على سبيل المثال:

    $product = Product::find(1);
    
    // الحصول على اسم المنتج بلغة معينة
    $productName = $product->translate('ar')->product_name;

    يمكنك أيضًا استخدام الوظيفة "locale()" للتحقق من اللغة الحالية المستخدمة في التطبيق وعرض النص المترجم باللغة المناسبة تلقائيًا.

    $product = Product::find(1);
    
    // الحصول على اسم المنتج باللغة الحالية في التطبيق
    $productName = $product->translate(app()->getLocale())->product_name;

    يمكن استخدام هذا النهج لعرض الوصف المترجم للمنتجات أيضًا.

    وسأشرح لك المزيد

    وتخزين البيانات المتعلقة باللغات في قاعدة البيانات يمكن أن يكون تحديًا في تطبيقات الويب متعددة اللغات. إذا كان لديك عمودين فقط في جدول قاعدة البيانات واحد يتعلق بالاسم والآخر بالوصف، وتريد ترجمة قيمهما للغات المختلفة، فيمكن استخدام حزمة "spatie/laravel-translatable" في Laravel.

    قبل البدء في الاستخدام، يجب تثبيت الحزمة باستخدام مدير الحزم composer، باستخدام الأمر التالي:

    composer require spatie/laravel-translatable

    يمكن تحويل العمود الذي يحتوي على الاسم والعمود الذي يحتوي على الوصف إلى حقول قابلة للترجمة باستخدام خاصية "translatable" من الحزمة، على النحو التالي:

    use Spatie\Translatable\HasTranslations;
    
    class Product extends Model
    {
        use HasTranslations;
    
        public $translatable = ['product_name', 'product_description'];
    
        // ...
    }

    تم تحويل العمودين "product_name" و "product_description" إلى حقول قابلة للترجمة باستخدام الخاصية "translatable".

    بعد ذلك، يمكن إدخال البيانات المتعلقة بالترجمة في قاعدة البيانات باستخدام تنسيق JSON المعتمد من Laravel، كما أوضحته في إجابتي السابقة. يمكن الوصول إلى قيمة الحقل المترجم باستخدام الدالة "translate()"، على النحو التالي:

    $product = Product::find(1);
    
    // الحصول على اسم المنتج بلغة معينة
    $productName = $product->translate('ar')->product_name;
    
    // الحصول على وصف المنتج بلغة معينة
    $productDescription = $product->translate('ar')->product_description;

    إذا كنت تريد عرض النص المترجم للغة المحددة في تطبيقك، يمكن استخدام الدالة "locale()" للتحقق من اللغة الحالية للمستخدم وعرض النص المترجم باللغة المناسبة، على النحو التالي:

    $product = Product::find(1);
    
    //

    اكثر من رائع شكرا لك ولكن يبقى لي كيفية عمل  store  لل request  القادم اليا من  create product   للمنتج المترجم والغير مترجم

  9. السلام عليكم

    استعمل في التطبيق الترجمة ياستخدام laravel spatie translation

    اذا كان لدي عمودين فقط في ال db  اخزن قيمتهم باستخدام json  اسم المنتج ووصف المنتج (لغة عربية  لغة اجنبية)

    لاقي الاعمدة قيم لاتحتاج الى ترجمة  اولا كيف اقوم بتخزينهم في الdb  ومن ثم كيف اعرضهم في تطبيقي

    • أعجبني 2
  10. بتاريخ On 6‏/1‏/2023 at 08:49 قال Kais Hasan:

    بشكل عام عندما نريد القيام بأمر يمكننا البحث عن كيف قامت مواقع أخرى بالقيام بذلك، أفضل موقع يمكننا النظر إليه هو مواقع ال stackexchange التي من بينها ال stackoverflow، إن هذه المواقع و خاصة الموقع الخاص بالرياضيات تستعمل ما يدعى بال MathJax و الذي يسمح لك بكتابة معادلات رياضية بطريقة تشبه طريقة ال Latex، و هو من أفضل الحلول لهذه المشكلة.

    يمكنك تضمينه في الموقع الخاص بك كما يلي:

    <script type="text/javascript"
      src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
    </script>

    هذا مثال على صفحة بسيطة في ال html مكتوبة باستعمال ال MathJax:

    <!DOCTYPE html>
    <html>
    <head>
    <title>MathJax TeX Test Page</title>
    <script type="text/x-mathjax-config">
      MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
    </script>
    <script type="text/javascript"
      src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
    </script>
    </head>
    <body>
    When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are
    $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
    </body>
    </html>

    ما يوجد في ال head هو كود عام لتضمين ال MathJax  و هو بشكل عام رابط المكتبة بالإضافة إلى بعض الإعدادات التي تسمح بالتعامل مع المفردات الخاصة به.

    في ال body كما تلاحظ توجد كتابة تستعمله، لاحظ مثلاً كتبنا الجذر التربيعي على أنه 

    \sqrt{b^2-4ac}
    

    و نضع أي شيء نريد كتابته ك MathJax  ضمن إشارة دولار، إشارة واحدة تجعل ما ضمنها يكون ضمن نفس السطر، بينما إشارتين تجعل المعادلة على سطر لوحدها.

    أي معادلة يمكنك كتابتها باستعمال هذه اللغة، و بالطبع هنا عرضت لك مثال العرض و لكن بشكل مماثل يمكنك صنع كود للإدخال في حال أردت ذلك، حيث سيكتب الطالب باستعمال ال MathJax.

    عليك تعلم التعليمات الخاصة به، و هي ليست سهلة و لكنها أسهل ما يمكن، يمكنك الإطلاع عليها من هنا.

    اشكرك كثيرا ولكن اريد توضيح اخر لافهم جيدا اقصد انني عند ادخال اسئلة الامتحان كاملة والتي بها اكواد ورموز رياضيه عندما اقوم بعرض الامتحان ارى الاسئلة بدون المعادلات والاكود فهل اذا قمت بتضمين هذه المكتبة استيطع عند ادخال الرموز او كتابة الامتحان تظهر لي المعادلات 

×
×
  • أضف...