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

استخدام الترتيب orderBy مع العلاقات في لارافيل

Amir Alsaeed

السؤال

لقد قمت بإنشاء حلقة للمرور على التعليقات المكتوبة من قبل مستخدم على كتاب معيّن:

foreach($book->student->comments as $comment)
    {
        echo "<li>" . $comment->title . " (" . $comment->book->id . ")</li>";
    }

ولكن تمت الطباعة بشكل غير مرتب فكانت النتيجة كالتالي:

This book is good (3)
Test comment(2)
New Test Comment (4)

كيف يمكنني إضافة الترتيب على الحلقة لطباعة التعليقات بشكل مرتب 2 ثم 3 ثم 4 ؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

نقوم بتعديل الدالة في كلاس Student المسؤولة عن استرجاع التعلقيات

public function comments()
{
    return $this->hasMany('Comment');
}

لتصبح

public function comments()
{
    return $this->hasMany('Comment')->orderBy('id');
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

بإمكانك إنشاء تابع جديد في النموذج User بهذا الشكل:

public function commentsSorted()
{
    return $this->hasMany('Comment')->orderBy('post_id');
}

و عند عرض التعليقات تقوم بالتالي:

foreach($post->user->ommentsSorted as $comment)
{
  echo "<li>" . $comment->title . " (" . $comment->post->id . ")</li>";
}

أو تعرض المعلومات بالطريقة التالية:

@foreach($comments as $comment)
  <li>{{ $comment->title }} ({{ $comment->post_id }})</li> 
@endforeach

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...