Search code examples
laravelsql-order-byrelational

Laravel Polymorphic Relationships with order by


Laravel version 7.2.5.

I am using Polymorphic Relationships to store the access logs (login, logout) for multi-role application.

The data storing part is working completely fine. Now, I need to show the list of records in desc format with pagination. But, It's loading the data in the asc format

SomeModel.php

class SomeModel extends Model
{
    /**
     * Polymorphic Relationships
     */
    public function loginLog()
    {
        return $this->morphMany(LoginLog::class, 'employable');
    }

    public function show($token)
    {
        return self::where([
            'token' => $token,
        ])->with([
            'loginLog:employable_id,ip,created_at,updated_at'
        ])->first() ?? null;
    }
}

I did find the solution. But, somehow it doesn't feel the appropriate way to solve this issue.

Here is the link Laravel order results by column on polymorphic table


Solution

  • Try this

    class SomeModel extends Model
    {
        /**
         * Polymorphic Relationships
         */
        public function loginLog()
        {
            return $this
                ->morphMany(LoginLog::class, 'employable')
                ->latest();
        }
    }