Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alrik11es/laravel-rapids

Rapid prototyping for laravel
https://github.com/alrik11es/laravel-rapids

datagrid forms laravel scaffolding

Last synced: about 1 month ago
JSON representation

Rapid prototyping for laravel

Awesome Lists containing this project

README

        

![alt tag](https://raw.githubusercontent.com/alrik11es/laravel-rapids/master/resources/images/laravel_rapids.png)

The rapid development made with laravel.

This library is intended for those developers who like to make applications as fast as possible.

## Requirements

* PHP >= 7.0.0
* Bootstrap on your project

## Installation

Add Rapids service provider `Laravel\Rapids\RapidsServiceProvider::class,` to your app.php config in Laravel.

## Usage

```php
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:

```php
{!! $grid !!}
```
This will generate a simple datagrid with modify/delete options.

## Load any widget
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 !!}`.

## Elements
In order to ease the usability of this tool we've created some widgets for you. Just to use on any place.

### DataGrid
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.

##### Startup
`$data_grid = new DataGrid(Post::query());` Start your DataGrid within an Eloquent model query

##### Adding new field to the table
`$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.

##### Actions (Edit/Show/Delete)
`$data_grid->setActions('/post/edit', 'modify|delete');` This will add the action buttons in your DataGrid. Available options are "modify", "delete", "show"

##### Value transformations
Imagine the common case to have a price value over 50 to be painted as yellow.
```php
$grid_widget->add('title', 'Title')->transform('price', 'Pricing', function($value){
$result = $value;
if($value > 50){
$result = ''.$value.'';
}
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.

##### Row transformations
Sometimes you need to set some classes to the entire row. Use this type of transformation to do so.

##### Relations
Obviously you will need to add some relations to the table. The best way to achieve this is using a transformation. So for example:

```php
$grid_widget->addTransformation('categories', 'Categories', function($value){
return $value->implode('name', ', ');
});
```

#### setActions
### DataForm

```php
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'));
}
```

```php
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();
}
```

## Idea
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.

* https://github.com/zofe/rapyd-laravel
* https://github.com/wutongwan/laravel-lego