Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/markhilton/formfields
Laravel 5 package to render bootstrap HTML form fields sourced from Blade templates
https://github.com/markhilton/formfields
Last synced: 24 days ago
JSON representation
Laravel 5 package to render bootstrap HTML form fields sourced from Blade templates
- Host: GitHub
- URL: https://github.com/markhilton/formfields
- Owner: markhilton
- License: mit
- Created: 2016-06-13T22:57:55.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-07-15T01:06:09.000Z (over 8 years ago)
- Last Synced: 2024-08-19T02:53:11.110Z (4 months ago)
- Language: HTML
- Size: 21.5 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FormFields
FormFields is a collection of editable Laravel Blade views to render bootstrap responsive HTML content
for individual form fields. The form configuration is fetched from ORM model.It also contains a class to queue linked and inline supporting javascripts.
## Main features
- read form fields configurtion directly from ORM models
- render individual HTML content for form fields
- support for required javascripts included in form fields template
- support for Laravel Blade template engine## Setup
Add to your **config/app.php**
```php
'providers' => [
...
MarkHilton\FormFields\FormFieldsServiceProvider::class,
],'aliases' => [
...
'jsQueue' => MarkHilton\FormFields\jsQueue::class,
'FormBuilder' => MarkHilton\FormFields\FormBuilder::class,
],
```inside app root folder copy config file:
```bash
cp vendors/markhilton/formfields/config/formfields.php configs/formfields.php
```### Model
```php
class Your_Model_Name extends Model
{
public static $errors = [];// ... //
// HTML form builder definitions
public static $form = [
'name' => [
'type' => 'input',
'label' => 'Label name',
'position' => 'top',
],'status' => [
'type' => 'select',
'label' => 'Status',
'position' => 'side',
'choice' => [
'active' => 'Active',
'pending' => 'Pending',
'suspended'=> 'Suspended',
],
'default' => 'active',
],// ... //
```### Controller
```php
namespace App\Http\Controllers;use App\Http\Requests;
use App\Http\Controllers\Controller;use App\Your_Model_Name;
use Illuminate\Http\Request;class SiteController extends Controller {
public function create(Request $request)
{
$form = \FormBuilder::build(Your_Model_Name::$form, $request->old() ? $request->old() : []),return view('layout', $form);
// ... //
```### View
```html
{{ $status }}{{ $name }}
```### HTML output
```html
Active
Pending
Suspended
Name
```## Usage
Queue for linked and inline javascripts inside view template
### Controller
- **jsQueue::push('[javascript code]');** to push javascripts code to the queue
- **jsQueue::link('[javascript file]');** to add linked javascripts files### View
add **{{ jsQueue::render() }}** call
in template header or footer in order to render queued javascripts### How to steps
1. Define $form property in ORM model
2. Assign HTML form fields output from \FormBuilder::build(ORM_MODEL::$form);
3. Render form field in the template with {{ $field_name }}