https://github.com/antonioribeiro/formfield
FormField
https://github.com/antonioribeiro/formfield
Last synced: 4 months ago
JSON representation
FormField
- Host: GitHub
- URL: https://github.com/antonioribeiro/formfield
- Owner: antonioribeiro
- Created: 2017-07-21T01:11:12.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-07-21T06:06:36.000Z (about 8 years ago)
- Last Synced: 2025-06-13T11:06:38.460Z (4 months ago)
- Language: PHP
- Size: 19.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Quick fix for Jeffrey Way's way/form package to make it compatible with LiveControls CMS and Laravel 5.
## not compatible with standalone laravel 5
The basic idea is simple: make form creation simpler.
[View a quick visual
demonstration.](https://dl.dropboxusercontent.com/u/774859/GitHub-Repos/formfield-sample.mp4)I'm tired of creating form fields, like this:
```html
{{ Form::label('username', 'Username:' ) }}
{{ Form::text('username', null, ['class' => 'control-group']) }}
```Instead, with this `FormField` class, you can simply do:
```php
{{ FormField::username() }}
```That will then produce the necessary (Bootstrap-friendly, by default) HTML. It uses dynamic methods to
simplify the process a bit.While it will do its best to figure out what kind of input you want, you
can override it.```php
{{ FormField::yourBio(['type' => 'textarea']) }}
```This will produce:
```html
Your Bio:
```So, yeah, it's just a helper class. If your forms require a huge amount
of customization, this probably won't work for you. But for simple
forms, it'll do the trick nicely!(It also makes Laracasts demos way easier to setup. :)
## Usage
To try this out:
Begin by installing the package through Composer.
```js
require: {
"livecontrol/form": "dev-master"
}
```Next, add the service provider to `app/config/app.php`.
```php
'providers' => [
// ..
'Way\Form\FormServiceProvider'
]
```That's it! You're all set to go. Try it out in a view:
```php
{{ FormField::username() }}
{{ FormField::email() }}
{{ FormField::custom(['type' => 'textarea']) }}
{{ FormField::address(['label' => 'Your Address']) }}
```That will produce the following. Though it's Twitter Bootstrap friendly
by default, you can of course customize the class names as you wish.
If you want to override the defaults, you can publish the config, like
so:php artisan config:publish way/form
Now, access `app/config/packages/way/form/config.php` to customize.
Here's what it lists by default:```php
return [/*
* What should each form element be
* wrapped within?
*/
'wrapper' => 'div',/*
* What class should the wrapper
* element receive?
*/
'wrapperClass' => 'form-group',/**
* Should form inputs receive a class name?
*/
'inputClass' => 'form-control',/**
* Frequent input names can map
* to their respective input types.
*
* This way, you may do FormField::description()
* and it'll know to automatically set it as a textarea.
* Otherwise, do FormField::thing(['type' => 'textarea'])
*
*/
'commonInputsLookup' => [
'email' => 'email',
'emailAddress' => 'email','description' => 'textarea',
'bio' => 'textarea',
'body' => 'textarea','password' => 'password',
'password_confirmation' => 'password'
]
];
```