The rapid development made with laravel.
This library is intended for those developers who like to make applications as fast as possible.
- PHP >= 7.0.0
- Bootstrap on your project
Add Rapids service provider Laravel\Rapids\RapidsServiceProvider::class,
to your app.php config in Laravel.
<?php
$data_grid = new DataGrid(Post::query());
$data_grid->add('id', 'id');
$data_grid->add('title', 'Name');
$data_grid->setActions('/post/edit', 'modify|delete');
$grid = Widget::load($data_grid);
return view('grid', compact('grid'));
In your view:
{!! $grid !!}
This will generate a simple datagrid with modify/delete options.
Remember that to load any widget you're gonna need to execute $widget_render = Widget::load($widget);
and will return the render of that widget. You only need to pass to blade as raw format {!! $widget !!}
.
In order to ease the usability of this tool we've created some widgets for you. Just to use on any place.
The DataGrid is the bridge head of the computer development. You're gonna need it for everything. So lets take a look to the options that Rapids brings.
$data_grid = new DataGrid(Post::query());
Start your DataGrid within an Eloquent model query
$data_grid->add('title', 'Title');
When you need to add a new field.
If you need that this field shows orderBy buttons. Set to true the third optional parameter.
$data_grid->setActions('/post/edit', 'modify|delete');
This will add the action buttons in your DataGrid. Available options are "modify", "delete", "show"
Imagine the common case to have a price value over 50 to be painted as yellow.
$grid_widget->add('title', 'Title')->transform('price', 'Pricing', function($value){
$result = $value;
if($value > 50){
$result = '<span style="background-color: yellow;">'.$value.'</span>';
}
return $result;
});
You can obviously make your own widget instead of adding raw html to the PHP code. Just pass any rendered string as result of the callback.
Sometimes you need to set some classes to the entire row. Use this type of transformation to do so.
Obviously you will need to add some relations to the table. The best way to achieve this is using a transformation. So for example:
$grid_widget->addTransformation('categories', 'Categories', function($value){
return $value->implode('name', ', ');
});
public function create()
{
$data_form = new DataForm(new Book(), '/admin/book');
$data_form->add('title', 'Book title');
$data_form->add('categories.name', 'Categories', Cell::TYPE_CHECKBOXGROUP);
$create = Widget::load($data_form);
return view('admin/book/create', compact('create'));
}
public function store()
{
$data_form = new DataForm(new Book(), '/admin/book');
$data_form->setRequest($request);
$data_form->request('title');
$data_form->request('token');
return $data_form->operate();
}
The idea comes from other's people libraries that are really good. And the need to have a well written code base just to mess with.