radwanic / resource-listing
A Laravel Nova card.
Installs: 10 957
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 2
Open Issues: 2
Requires
- php: >=7.1.0
This package is auto-updated.
Last update: 2024-04-08 12:43:58 UTC
README
This package allows you to list resources and order them based on a specific column
Installation
You can install the package in a Laravel app with Nova installed
composer require radwanic/resource-listing
Description
A Laravel Nova card that displays a list of resource items based on the criteria that you specify.
Basic Usage
Adding the snippet below to the dashboard cards
function will display the most resent posts based on their created_at
field
protected function cards() { return [ ... (new ResourceListing())->resource(\App\Post::class) ]; }
Available Methods
Name | Description | Example | Default Value |
---|---|---|---|
resource | sets the resource (must be set) | \App\Post::class |
- |
cardTitle | sets card title, won't display a card title if not set | Recent Posts | empty string |
resourceTitleColumn | choose the resource model column which will be used in the listing | first_name - name - title |
title |
resourceUri | sets the resource uri. only the title will be displayed if not set | /resoucres/posts/ |
empty string |
limit | sets the maximum number of items that will be listed | 1 - 3 - 5 |
10 |
orderBy | sets the column that will be used to sort the list | updated_at - name - price - age |
created_at |
order | sets the sorting direction | asc - desc |
desc |
readableDate | sets the readable human date flag. this can be used with any date column | true - false |
false |
Advanced Examples
- Display recently updated posts, link each post to its resource url, and limit the results to 5
(new ResourceListing()) ->cardTitle('Recently Updated Posts') ->resource(\App\TOYIT\Posts\Post::class) ->resourceUrl('/resources/posts/') ->orderBy('updated_at') ->limit(5)
- Get the most expensive products based on the
price
, and usename
to display each item
(new ResourceListing()) ->cardTitle('Recently Updated Posts') ->resource(\App\TOYIT\Posts\Post::class) ->resourceUrl('/resources/posts/') ->resourceTitleColumn('name') ->orderBy('price') ->limit(5)
- Get the three oldest members based on the
created_at
column, transform thecreated_at
to a readable human time diff, and set theorder
direction toasc
new ResourceListing()) ->cardTitle('Oldest Members') ->resource(\App\TOYIT\Users\User::class) ->resourceTitleColumn('name') ->resourceUrl('/resources/users/') ->readableDate(true) ->orderBy('created_at') ->order('asc'),
Security
If you discover any security related issues, please email mohammed-radwan@hotmail.com
Contributing
This is a basic package that covers few cases and has limited features. Any contributions are welcome and credited.
License
The MIT License (MIT). Please see License File for more information.