1. Go to this page and download the library: Download sands/laravel-presenter library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
// app/Http/Controllers/Controller.php
...
use Sands\Presenter\PresentsResponses;
...
class Controller extends BaseController
{
use PresentsResponses;
}
public function index()
{
return $this->present(['users' => User::paginate()])
->using('blade', 'json');
}
// in your routes file
Route::get('/users/export.{presentUsing}', 'UsersController@index');
public function index()
{
return $this->present()
->setOption('data.blade', 'data') // call this method to get data for blade
->setOption('data.json', 'jsonData') // call this method to get data for JSON
->setOption('data', 'data') // default data method
->using('json', 'blade');
}
public function data()
{
return ['users' => User::paginate()];
}
public function jsonData()
{
return ['users' => User::all()];
}
namespace App\Controllers;
...
public function index()
{
return $this->present(['users' => User::paginate()])
->setOption('controllerPrefix', 'App\\Controllers')
->using('blade', 'json');
}
class UsersControllers {
...
public function index()
{
return $this->present(['users' => User::paginate()])
->setOption('controllerSuffix', 'Controllers')
->using('blade', 'json');
}
public function index()
{
return $this->present(['users' => User::paginate()])
->setOption('view', 'some.blade.path')
->using('blade', 'json');
}
public function index()
{
return $this->present()
->setOption('data', 'data')
->setOption('data.json', 'jsonData') // call this method to get data for JSON
->using('json', 'blade');
}
public function jsonData()
{
return [
'users' => fractal()
->collection(User::all()
->transformWith(new UserTransformer())
->toArray();
];
}
use Sands\Presenter\Presenter;
use Sands\Presenter\PresenterContract;
...
class PdfPresenter implements PresenterContract {
public function __construct(Presenter $presenter)
{
$this->presenter = $presenter;
}
...
public function render($data = [])
{
$viewPath = $this->presenter->getOption('view.pdf');
return PDF::loadView($viewPath, $data)->stream();
}
app('sands.presenter')->register('pdf', [
'presenter' => \App\Presenters\Pdf::class,
'mimes' => [ // optionally bind to these mimes
'application/pdf',
],
'extensions' => [ // optionally bind to these extensions
'pdf'
],
'options' => [] // options to be
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.