Resources Component is an optional adhoc routing manager that allow extension developer to add CRUD interface without touching Orchestra Platform 2. The idea is to allow controllers to be map to specific URL in Orchestra Platform Administrator Interface.
Laravel | Resources |
---|---|
4.0.x | 2.0.x |
4.1.x | 2.1.x |
4.2.x | 2.2.x |
5.0.x | 3.0.x |
5.1.x | 3.1.x |
~5.2 | 3.2.x |
To install through composer, simply put the following in your composer.json
file:
{
"require": {
"orchestra/resources": "~3.0"
}
}
And then run composer install
from the terminal.
Above installation can also be simplify by using the following command:
composer require "orchestra/resources=~3.0"
Add Orchestra\Resources\ResourcesServiceProvider
service provider in config/app.php
.
'providers' => [
// ...
Orchestra\Resources\ResourcesServiceProvider::class,
],
You might want to add Orchestra\Support\Facades\Resources
to class aliases in config/app.php
:
'aliases' => [
// ...
'Resources' => Orchestra\Resources\Facade::class,
],
Normally we would identify an extension to a resource for ease of use, however Orchestra Platform still allow a single extension to register multiple resources if such requirement is needed.
use Orchestra\Support\Facades\Foundation;
Event::listen('orchestra.started: admin', function () {
$robots = Resources::make('robotix', [
'name' => 'Robots.txt',
'uses' => 'Robotix\ApiController',
'visible' => function () {
return (Foundation::acl()->can('manage orchestra'));
},
]);
});
Name | Usage |
---|---|
name | A name or title to refer to the resource. |
uses | a path to controller, you can prefix with either restful: (default) or resource: to indicate how Orchestra Platform should handle the controller. |
visible | Choose whether to include the resource to Orchestra Platform Administrator Interface menu. |
Orchestra Platform Administrator Interface now would display a new tab next to Extension, and you can now navigate to available resources.
A single resource might require multiple actions (or controllers), we allow such feature to be used by assigning child resources.
$robots->route('pages', 'resource:Robotix\PagesController');
Nested resource controller is also supported:
$robots['pages.comments'] = 'resource:Robotix\Pages\CommentController';
Controllers mapped as Orchestra Platform Resources is no different from any other controller except the layout is using Orchestra Platform Administrator Interface. You can use View
, Response
and Redirect
normally as you would without Orchestra Platform integration.