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

السؤال

نشر

أحاول المرور على جميع التعليقات التي نشرها مؤلف منشور معين و عرضها بهذا الشكل:

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

و هذه نتيجة العرض:

First comment (2)
This is a comment (3)
This is the second Comment (2)

كيف يمكنني الطلب عن طريق post_id بحيث يتم ترتيب القائمة أعلاه بهذا الشكل: 2،2، 3

Recommended Posts

  • 0
نشر

مرحبا،

يمكننا ترتيب المنشورات بالطريقة التالية ضمن المتحكم قبل إرسالهم للعرض:

public function getPosts(Request $request)
{
  $posts = $request->query()->get('###');

  $posts = collect($posts);
  $posts->sortBy('id');  // أو تحديد شيئ آخر 

  return view('showPosts')->with('posts', $posts);
}

 

  • 0
نشر

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

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

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

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

أو يُمكنك ترتيب التعليقات في المُتحكم و تمريرها لصفحة العرض:

$comments = auth()->user()
              ->comments()
              ->orderBy('post_id')
              ->get();

return view('view.name', compact('comments'));

// و في صفحة العرض تقوم بإستخدام المُتغير comments

في صفحة العرض:

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

 

  • 0
نشر

توجد طريقة أخرى لترتيب التعليقات بواسطة حقل created_at  كالتالي :

$user = Auth::user()

$user =  $user->with(['comments' => function ($query) use ('ASC') {
    $query->orderBy('creatd_at', 'ASC');
}]);

بعد ذلك يمكن إظهار التعليقات في صفحة العرض :

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

وهكدا ستظهر التعليقات مرتبة على حسب تاريخ إضافتها 

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...