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

السؤال

نشر

احتاج تحويل الصيغة التالية   {"en":"value","ar":"value"}
 واستخلاص منها القيم لعرضها للمستخدم ك سلسلة نصية بالاضافة الى تحويل السلسلة النصية الى قيمتها العددية اي رقم السطر في الداتابيز لان الحقل هو مفتاح ثانوي

هذه القيم ناتجة عن مكتبة لارافل spatie

drop.png

Recommended Posts

  • 0
نشر

توفر مكتبة Laravel Spatie  وظيفة لتحويل السلسلة النصية إلى مصفوفة:

use Spatie\Translatable\HasTranslations;

class YourModel extends Model
{
    use HasTranslations;

    public $translatable = ['value'];

    public function getValueAttribute($value)
    {
        $translatedValue = $this->getTranslations('value');
        $numericValue = $this->id;

        return [
            'value' => $translatedValue,
            'numeric_value' => $numericValue,
        ];
    }
}

من خلال إضافة خاصية "translatable" إلى النموذج لتحديد الحقل المترجم، ثم استخدام الدالة "getTranslations" لاستخراج القيمة المترجمة للحقل، يتم إضافة القيمة العددية للحقل كقيمة رقمية. يمكنك الآن استخدام خاصية "value" و "numeric_value" لعرض القيم المترجمة والقيم الرقمية على التوالي.

  • 0
نشر
بتاريخ 1 ساعة قال Mustafa Suleiman:

توفر مكتبة Laravel Spatie  وظيفة لتحويل السلسلة النصية إلى مصفوفة:

use Spatie\Translatable\HasTranslations;

class YourModel extends Model
{
    use HasTranslations;

    public $translatable = ['value'];

    public function getValueAttribute($value)
    {
        $translatedValue = $this->getTranslations('value');
        $numericValue = $this->id;

        return [
            'value' => $translatedValue,
            'numeric_value' => $numericValue,
        ];
    }
}

من خلال إضافة خاصية "translatable" إلى النموذج لتحديد الحقل المترجم، ثم استخدام الدالة "getTranslations" لاستخراج القيمة المترجمة للحقل، يتم إضافة القيمة العددية للحقل كقيمة رقمية. يمكنك الآن استخدام خاصية "value" و "numeric_value" لعرض القيم المترجمة والقيم الرقمية على التوالي.

هل يمكنك اكمال الخطوات وكيف يمكن التعامل معها ضمن صفحة blade

المشكلة هي انه لا يتعرف على getTranslations في صفحة blade

من فضلك لو تم اعطاء  سيناريوه الخطوات كاملة وشكرا

  • 1
نشر
بتاريخ 11 ساعة قال Osama Kha:

هل يمكنك اكمال الخطوات وكيف يمكن التعامل معها ضمن صفحة blade

المشكلة هي انه لا يتعرف على getTranslations في صفحة blade

من فضلك لو تم اعطاء  سيناريوه الخطوات كاملة وشكرا

يفترض أن يتم مباشرة حقن القيمة الموافقة للغة المفعلة عند قراءة الخاصية، فان كانت الخاصية name تحمل قيما متعددة اللغات فإن قراءتها في ملفات العروض سيكون وفق:

$item->name

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

$item->getTranslations('name')

بل استعمل السياق:

$item->name

وسيصلح هذا المشكلة معك.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...