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

Osama Kha

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

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

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

أجوبة بواسطة Osama Kha

  1. بتاريخ منذ ساعة مضت قال Mustafa Suleiman:

    تستطيع استخدام الدالة foreach() لتكرار على جميع العناصر الموجودة في مصفوفة Array أو في قائمة Collection في Laravel.

    و دالة foreach() متاحة في لغة البرمجة PHP التي يعتمد عليها Laravel.

    مثال:

    $array = array('item1', 'item2', 'item3');
    foreach ($array as $item) {
        echo $item;
    }

    وبالإمكان استخدام الدالة foreach() لاسترجاع جميع العناصر في قائمة Collection في Laravel كما يلي:

    $collection = collect(['item1', 'item2', 'item3']);
    foreach ($collection as $item) {
        echo $item;
    }

    وبذلك تستطيع التكرار على جميع العناصر في مصفوفة Array أو في قائمة Collection في Laravel والقيام بالعمليات التي تريدها على كل عنصر.

    شكرا لك اخي الكريم لكن احتاج الى الحلقة التكرارية ضمن المثال المرفق بالصورة عند وضع ال foreachقبل ال form يقوم بتكرارها على عدد العناصر احتاج الى الية لعرض العناصر ضمن drop down 

  2. بتاريخ 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
  3. احتاج تحويل الصيغة التالية   {"en":"value","ar":"value"}
     واستخلاص منها القيم لعرضها للمستخدم ك سلسلة نصية بالاضافة الى تحويل السلسلة النصية الى قيمتها العددية اي رقم السطر في الداتابيز لان الحقل هو مفتاح ثانوي

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

    drop.png

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

    ان كانت الحقول لديك يتم تصريح أسماءها بـ title و details و img_path فيجب بطبيعة الحال التحقق منها باعتبار هاته الاسماء، فبدل ان يكون:

    $request->validate([
        'Ads_Title' => 'required',
        'Ads_Details' => 'required',
        'Ads_Img_Path' => 'required'
    ])

    يجب ان يكون:

    $request->validate([
        'title' => 'required',
        'details' => 'required',
        'img_path' => 'required'
    ])

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

    {! Form::text('Ads_Title' ,null, ['placeholder' => 'english title']) !}

     

    شكرا لك اخي الكريم تمت عملية التحقق بنجاح يوجد سؤال اخر من فضلك هل يوجد تابع لمنع المستخدم من ادخال محارف عربية في حقول انكليزية والعكس ايضا استخدم مكتبة الترجمة المقدمة من لارافيل spatie/laravel-translatable هناك حقلين الاولى باللغة العربية والثاني باللغة الانكليزية احتاج الى منعه من الادخال في حالة كان الحقل عربي يدخل عربي ......

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

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

    باستطاعتك استخدام ميزة الـ Validation المتوفرة في Laravel لتحقق من صحة الحقول وتعيين رسائل الخطأ المناسبة لكل حقل بشكل منظم.

    من خلال استخدام ملف التحقق (validation) الموجود في المسار app/Http/Requests لتحديد قواعد التحقق لكل حقل، ثم استخدام هذا الملف لتحقق من صحة الحقول وعرض رسائل الخطأ الخاصة بكل حقل.

    فمثلاً، إذا كان لديك حقل "name" في نموذج التسجيل، فيمكنك إنشاء ملف التحقق التالي:

    namespace App\Http\Requests;
    
    use Illuminate\Foundation\Http\FormRequest;
    
    class RegisterRequest extends FormRequest
    {
        public function rules()
        {
            return [
                'name' => 'required|min:3|max:255',
                'email' => 'required|email|unique:users',
                'password' => 'required|confirmed|min:6',
            ];
        }
    
        public function messages()
        {
            return [
                'name.required' => 'يجب أن تدخل اسمك.',
                'name.min' => 'يجب أن يحتوي الاسم على 3 أحرف على الأقل.',
                'name.max' => 'يجب أن يحتوي الاسم على 255 حرفًا كحد أقصى.',
                'email.required' => 'يجب أن تدخل عنوان بريدك الإلكتروني.',
                'email.email' => 'يجب أن يكون عنوان بريدك الإلكتروني صالحًا.',
                'email.unique' => 'عنوان البريد الإلكتروني هذا مستخدم بالفعل.',
                'password.required' => 'يجب أن تدخل كلمة مرور.',
                'password.min' => 'يجب أن تحتوي كلمة المرور على 6 أحرف على الأقل.',
                'password.confirmed' => 'تأكيد كلمة المرور غير متطابق.',
            ];
        }
    }

    و في المثال، تم تعريف قواعد التحقق لحقول الاسم والبريد الإلكتروني وكلمة المرور، وتم تعريف رسائل الخطأ الخاصة بكل حقل.

    ثم يمكنك استخدام ملف التحقق في نموذج التسجيل الخاص بك كالتالي:

    public function register(Request $request)
    {
        $validatedData = $request->validate([
            'name' => 'required|max:255',
            'email' => 'required|email|unique:users|max:255',
            'password' => 'required|min:6|max:255',
        ]);
    
        // اكمل هنا بالكود الذي تريده
    }

    بعد ذلك، عليك باستخدام خاصية "error message bag" في Laravel لعرض رسائل الخطأ وتعليقها على حقول الإدخال المحددة.

    وفي حالة عدم مرور عملية التحقق بنجاح، يتم إنشاء "error message bag" تحتوي على جميع رسائل الخطأ المتعلقة بالحقول الفارغة أو غير الصالحة،  وباستطاعتك استخدام هذا الملف لعرض رسالة الخطأ المناسبة لكل حقل إدخال بشكل فردي.

    كمثال، استخدم الكود التالي في ملف نموذج التسجيل:

    @if ($errors->any())
        <div class="alert alert-danger">
            <ul>
                @foreach ($errors->all() as $error)
                    <li>{{ $error }}</li>
                @endforeach
            </ul>
        </div>
    @endif
    
    <div class="form-group">
        <label for="name">Name</label>
        <input type="text" class="form-control" id="name" name="name" placeholder="Enter your name">
        @error('name')
            <div class="alert alert-danger">{{ $message }}</div>
        @enderror
    </div>
    
    <div class="form-group">
        <label for="email">Email</label>
        <input type="email" class="form-control" id="email" name="email" placeholder="Enter your email">
        @error('email')
            <div class="alert alert-danger">{{ $message }}</div>
        @enderror
    </div>
    
    <div class="form-group">
        <label for="password">Password</label>
        <input type="password" class="form-control" id="password" name="password" placeholder="Enter your password">
        @error('password')
            <div class="alert alert-danger">{{ $message }}</div>
        @enderror
    </div>

    هنا، يتم عرض رسالة الخطأ الشاملة في الجزء العلوي من النموذج باستخدام دالة $errors->any()، وتعرض رسالة الخطأ الفردية لكل حقل إدخال بشكل منفصل باستخدام @error('field_name') و $message، حيث يتم استبدال 'field_name' بالاسم الحقيقي لحقل الإدخال المحدد.

    هل الطريقة صحيحة لم يتغير اي شيء عن سابقه 

    co2.png

    er2.png

    • أعجبني 1
  6. في الصور المرفقة يقوم بالتحقق من الحقول اذا كانت فارغة ف يقوم ب اخفاء جميع الحقول مع اظهار رسالة الخطأ لكن احتاج ان تكون عمليات التحقق بشكل منظم اكثر من ذلك اي يعطي رسالة الخطأ اسفل ال input مع عدم اخفاء الفورم 

    blade.png

    vaild.png

    بتاريخ منذ ساعة مضت قال Osama Kha:

    في الصور المرفقة يقوم بالتحقق من الحقول اذا كانت فارغة ف يقوم ب اخفاء جميع الحقول مع اظهار رسالة الخطأ لكن احتاج ان تكون عمليات التحقق بشكل منظم اكثر من ذلك اي يعطي رسالة الخطأ اسفل ال input مع عدم اخفاء الفورم 

    blade.png

    vaild.png

    وحتى عند ظهور الرسالة والقيام ب اعادة ادخال جميع الحقول تبقى رسالة الخطأ

    بتاريخ منذ ساعة مضت قال Osama Kha:

    في الصور المرفقة يقوم بالتحقق من الحقول اذا كانت فارغة ف يقوم ب اخفاء جميع الحقول مع اظهار رسالة الخطأ لكن احتاج ان تكون عمليات التحقق بشكل منظم اكثر من ذلك اي يعطي رسالة الخطأ اسفل ال input مع عدم اخفاء الفورم 

    blade.png

    vaild.png

    وحتى عند ظهور الرسالة والقيام ب اعادة ادخال جميع الحقول تبقى رسالة الخطأ

    هكذا يظهر الخطأ 

    error.png

    • أعجبني 1
  7. حتى عند التحديد لايعمل ويظهر رسالة الخطأ

     SQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs (Connection: mysql, SQL: create table `universities` (`university_id` smallint unsigned not null auto_increment primary key, `uni_name` varchar(30) not null, `Uni_vision` varchar(3000) not null, `uni_Mission` varchar(3000) not null, `uni_Goals` varchar(3000) not null, `About_university` varchar(8000) not null,

  8. هل عملية ال validation للحقول ضمن laravel تعتبر افضل ام انه التعامل مع عمليات التحقق ك front end خيار افضل مثلا JavaScript 

    احتاج معرف الفرق وايهما افضل 

    الفكرة بشكل عام هو التحقق ب استخدام laravel يتطلب طلب او ارسال الى السيرفر ليتأكد انه تم ادخال المعلومات بما يتناسب مع انواعها؟ ام انه لايحتاج لذلك 

    لا اعلم اذا كان الذي اعتقده صحيح مئة بالمئة او لا ليس دائما 

    ال validation من جهة ال front end يعتبر خيار جيد لانه لا يتم ارسال الطلب اما من جهة ال back end يتطلب وهذا يؤثر على السيرفر من جهة الطلبات 

     

    • أعجبني 2
  9. //head
    @if (App::getLocale() == 'en')
            <link href=" {{ asset('css1/rtl.css') }}" rel="stylesheet">
        @else
            <link href=" {{ asset('css1/ltr.css') }}" rel="stylesheet">
        @endif
    //head
    
    //body
     @foreach (LaravelLocalization::getSupportedLocales() as $localeCode => $properties)
            <a rel="alternate" hreflang="{{ $localeCode }} " class="language_icon"
                href="{{ LaravelLocalization::getLocalizedURL($localeCode, null, [], true) }}">
                <i class="fa fa-language" style="font-size: 48px"></i>
    
    
            </a>
        @endforeach
    //body

    عند استخدام هذا الكود فقط يقوم بتحويل لغة الموقع من enالى ar لكن العكس لايقبل

    {{ $properties['native'] }} هذا التعليمة لو وضعت مكان <tag <i فيعمل بشكل صحيح لكن يظهر خيارين اما عربي او انكليزي 

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

    • أعجبني 1
  10. احتاج الى قيود تمنع من ظهور المحتوى بشكل غير صحيح كيف يممن التعامل مع عرض وطول الصورة بحيث لاتفقد من دقتها وهل يجب ان تكون الصورة قبل التخصيص مناسبة ام لا في حال كانت الصورة ذو ابعاد مختلفة تمام عن مساحة ال divاو ال اي tagاخر وماهي افضل الطرق والمعايير لتعامل مع الصور 

    • أعجبني 1
  11. اقوم بتصميم موقع ويب عند التعامل مع الواجهات تم استخدام قوالب جاهزة 

    السؤال الاول احتاج الى معرفة هل ازا كانت مكتبة jquery مناسبة وفعالة 

    السؤال الثاني ما الفرق بين تضمين المكتبة بشكل داخلي اي داخل ملفات المشروع او linkلرابط من المتصفح وايهما افضل 

    • أعجبني 2
  12. اقوم بتصميم موقع لجهة معينة هل يوجد اداة تساعدني في اختبار شيفرات html css js انها مكتوبة بشكل سليم. 

    بالاضافة الى ذلك هل يوجد اداة تقوم بإضافة الميديا المناسبة لكود css لجعل الموقع مناسب على جميع الشاشات ام يجب مراعاة ذلك عند تصميم الموقع من البداية 

    • أعجبني 2
  13. امكانية الحذف والتعديل عن طريق واجهة او قالب جاهز ويتم التخصيص بناء على متطلبات المشروع 

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

    • أعجبني 1
  14. اي لايمكن تحديد طول محدد من قبل صاحب العمل كماذكرت حضرتك انه اصغر نوع هو tinyinteger اي لايوجد طريقة للتعامل مع عدد محدد لان 

    $table->integer('price', 11);

    هذه الطريقة لاتعمل لقد قمت ب تجربتها لكن الصف integer يقبل بارامتر من النوع التالي

    aaaaaaaaa.png

×
×
  • أضف...