كيف استدعي اخر ماتم اضافته في قواعد البيانات ؟

فهد العازمي • منذ سنة

عمل صفحه للبوست وتم استدعائها جميعها  بس المشكله انه يرتبها اخر وحده تم اضافتها صارت تحت واول وحده اضفتها صارت فوق ابي تصير العكس كيف ؟

 

 

 

 

 

صوره لتوضيح

 

 

اطار العمل هو laravel

 

 

وهذا الكود الي استخدمته علشان يستدعيها  

{
    public function posts()
    {
        $posts = Post::all();
        return view('content.posts', compact('posts'));
    }
    

 

كود عرضها في html

@extends('home') @section('content')



<h1 class="page-header" algin="right"> مقالات <small>تعلم</small></h1>

<!-- البوست الاول هنا -->

   @foreach ($posts as $post)
<h2>
    <a href="/posts/{{$post->id}}"> {{$post->titlePost}} </a>
</h2>
<p>{{$post->descriptionPost}}</p>
<img class="img-responsive " src="image_upload_post/{{$post->urlPhotoPost}}" width="500" height="500" alt=" ">
<br>
<p class="lead"> بواسطة <a href="index.php">{{$post->nameOther}}</a>
</p>
<p><span class="glyphicon glyphicon-time"></span> {{$post->created_at->toDayDateTimeString()}}</p>
<a class="btn btn-primary" href="/posts/{{$post->id}}"> أقراء اكثر <span class="glyphicon glyphicon-chevron-right"></span></a>
<hr>
@endforeach
<!-- نهاية البوست الاول -->

@stop

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

كلمات دليلية: database html php

الإجابة الصحيحة

ZaFaR97 • منذ سنة

أولًا هذه لا تعتبر مشكلة، إنّما هي نقص معلومات.

ثانيًا أنصح بمتابعة مستندات Laravel وقراءتها، وقراءة الأمثلة وهي بإذن الله توضح الكثير.

ثالثا المطلوب هو ترتيب النتائج - order - هنا أنت تستعمل ما يسمى بـ Eloquent ORM في Laravel، والمثال التالِي يوضّح كيفية الترتيب:

# مثال أوّل
$users = App\User::popular()->active()->orderBy('created_at')->get();

#مثال ثانِ
$flights = App\Flight::where('active', 1)
               ->orderBy('name', 'desc')
               ->take(10)
               ->get();

# مثال آخر
$users = DB::table('users')
                ->orderBy('name', 'desc')
                ->get();

في المثال أعلاه سيتم الترتيب افتراضيا على حسب خانة " created_at"، سيكون من الأوّل للأخير، افتراضيا.

نطبّق على شفرتك - كودك - :

 $posts = Post::orderBy('created_at')->get();

سيقوم بترتيبها بناءًا على تاريخ الإنشاء، إن كنت تريد عكس الترتيب فمرّر متغير إضافي لدالة orderBy() لتغيير طريقة الترتيب :

 $posts = Post::orderBy('created_at', 'desc')->get();

 

رابِعًا من الضروريّ جدًا قراءة ما في الرابطين التاليين، لمعرفة تفاصيل أكثر عن التعامل مع قواعد البيانات في Laravel

Ordering, Grouping, Limit, & Offset

والتّالي :

Eloquent: Getting Started

 

نصيحة: إذا عرفت الحلّ، لا تنسْ أن تتعلّم أكثر وبالتفصيل دومًا، ولا تعتمد على النسخ واللصق فقط، يجب أن تتعلّم ما تكتبه.

الإجابات (3)

ZaFaR97 • منذ سنة
الإجابة الصحيحة
مميز

أولًا هذه لا تعتبر مشكلة، إنّما هي نقص معلومات.

ثانيًا أنصح بمتابعة مستندات Laravel وقراءتها، وقراءة الأمثلة وهي بإذن الله توضح الكثير.

ثالثا المطلوب هو ترتيب النتائج - order - هنا أنت تستعمل ما يسمى بـ Eloquent ORM في Laravel، والمثال التالِي يوضّح كيفية الترتيب:

# مثال أوّل
$users = App\User::popular()->active()->orderBy('created_at')->get();

#مثال ثانِ
$flights = App\Flight::where('active', 1)
               ->orderBy('name', 'desc')
               ->take(10)
               ->get();

# مثال آخر
$users = DB::table('users')
                ->orderBy('name', 'desc')
                ->get();

في المثال أعلاه سيتم الترتيب افتراضيا على حسب خانة " created_at"، سيكون من الأوّل للأخير، افتراضيا.

نطبّق على شفرتك - كودك - :

 $posts = Post::orderBy('created_at')->get();

سيقوم بترتيبها بناءًا على تاريخ الإنشاء، إن كنت تريد عكس الترتيب فمرّر متغير إضافي لدالة orderBy() لتغيير طريقة الترتيب :

 $posts = Post::orderBy('created_at', 'desc')->get();

 

رابِعًا من الضروريّ جدًا قراءة ما في الرابطين التاليين، لمعرفة تفاصيل أكثر عن التعامل مع قواعد البيانات في Laravel

Ordering, Grouping, Limit, & Offset

والتّالي :

Eloquent: Getting Started

 

نصيحة: إذا عرفت الحلّ، لا تنسْ أن تتعلّم أكثر وبالتفصيل دومًا، ولا تعتمد على النسخ واللصق فقط، يجب أن تتعلّم ما تكتبه.

فهد العازمي • منذ سنة

شكرا لك انا كنت ابحث عن هذا الموضوع بالنت ولاكن ماحصلته واشكرك ع التسهيل 

Ali Majrashi • منذ سنة

ماشاء الله ماقصر ZaFaR97 اجابك اجابة ممتازه فعلا كل الي انت تحتاجه هو استخدام orderBy لترتيب النتائج وتوفر Laravel ايضا دوال مساعدة لتسريع عملية الترتيب بناء على تاريخ الاضافة created_at افتراضيا او تحدد اسم الحقل الذي ترغب باستخدامه لعملية الترتيب

مثال راح يرتب لك النتائج من الاجدد الى الاقدم بناء على قيمة الحقل created_at باستخدام latest 

public function posts()
{
   $posts = Post::latest()->get();
   return view('content.posts', compact('posts'));
}

مثال راح يرتب لك النتائج من الاقدم الى الاجدد بناء على قيمة الحقل created_at باستخدام oldest 

public function posts()
{
   $posts = Post::oldest()->get();
   return view('content.posts', compact('posts'));
}

او تقدر تستخدم orderBy مثل مااعطاك امثله المبدع  ZaFaR97 

فعليا كل من latest و oldest يستخدمون orderBy ولكن لتبسيط الكود ويكون اسهل للقرائة ويريحك بدل تكتب asc او desc لاختيار نوع الترتيب لما نستخدم orderBy

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !