PHP code example of distilleries / form-builder
1. Go to this page and download the library: Download distilleries/form-builder 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/ */
distilleries / form-builder example snippets
namespace App\Forms;
use Distilleries\FormBuilder\FormValidator;
class UserForm extends FormValidator
{
public static $rules = [
'email'=>'l');
$this->addDefaultActions();
}
}
namespace App\Http\Controllers;
use App\Forms\UserForm;
use Distilleries\FormBuilder\States\FormStateTrait;
class FormController extends Controller {
use FormStateTrait;
/*
|--------------------------------------------------------------------------
| Welcome Controller
|--------------------------------------------------------------------------
|
| This controller renders the "marketing page" for the application and
| is configured to only allow guests. Like most of the other sample
| controllers, you are free to modify or remove it as you desire.
|
*/
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct(\App\User $model, UserForm $form)
{
$this->model = $model;
$this->form = $form;
}
/**
* Show the application welcome screen to the user.
*
* @return Response
*/
public function getIndex()
{
return $this->getEdit();
}
}
Route::controllers([
'form' => 'FormController'
]);
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="//cdn.datatables.net/1.10.5/js/jquery.dataTables.min.js"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="//cdn.datatables.net/1.10.5/css/jquery.dataTables.min.css">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
<script src="/vendor/datatable-builder/js/datatable.js"></script>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-12">
@
php
'providers' => [
// ...
'Distilleries\FormBuilder\FormBuilderServiceProvider',
]
php
'aliases' => [
// ...
'FormBuilder' => 'Distilleries\FormBuilder\Facades\FormBuilder',
]
ssh
php artisan vendor:publish --provider="Distilleries\FormBuilder\FormBuilderServiceProvider"
ssh
php artisan vendor:publish --provider="Distilleries\FormBuilder\FormBuilderServiceProvider" --tag="views"
sh
php artisan make:form Forms/PostForm
php
namespace App\Forms;
use Distilleries\FormBuilder\FormValidator;
class SongForm extends FormValidator
{
public static $rules = [];
public static $rules_update = null;
public function buildForm()
{
$this
->add('name', 'text')
->add('lyrics', 'textarea')
->add('publish', 'checkbox');
$this->addDefaultActions();
}
}
blade
{!! form_view($form) !!}
php
$this->add('change_password', 'checkbox', [
'default_value' => 1,
'label' => _('Check it if you want change your password'),
'checked' => false,
'noInEditView' => true
]);
php
$this->add('user', 'form', [
'label' => _('User'),
'icon' => 'user',
'class' => \FormBuilder::create('Distilleries\Expendable\Forms\User\UserForm', [
'model' => $this->getUserModel(),
'do_not_display_role_id' => true
])
]);
php
$this->add('email', 'email',
[
'validation' => '
php
namespace Project\Forms;
use Distilleries\FormBuilder\FormValidator;
class UserForm extends FormValidator {
public static $rules = [
'email' => ''id' => '------------------------------------------------------------
public function buildForm()
{
$this
->add($this->model->getKeyName(), 'hidden')
->add('email', 'email',
[
'label' => _('Email'),
'validation' => ''attr' => ['id'=>'password'],
'validation' => 'd', 'choice', [
'choices' => \Role::getChoice(),
'empty_value' => _('-'),
'validation' => '
php
$form = FormBuilder::create('Project\Forms\UserForm', [
'model' => new User
]);
if ($form->hasError())
{
return $form->validateAndRedirectBack();
}
php
Redirect::back()->withErrors($this->validate())->withInput(Input::all());
php
$this->add('subscription', 'choice', [
'choices' => ['monthly' => 'Monthly', 'yearly' => 'Yearly'],
'empty_value' => '==== Select subscription ===',
'multiple' => false // This is default. If set to true, it creates select with multiple select posibility
])
php
$this->add('subscription', 'choice', [
'choices' => ['monthly' => 'Monthly', 'yearly' => 'Yearly'],
'selected' => 'monthly',
'expanded' => true
])
php
$this->add('subscription', 'choice', [
'choices' => ['monthly' => 'Monthly', 'yearly' => 'Yearly'],
'selected' => ['monthly', 'yearly']
'expanded' => true,
'multiple' => true
])
php
$this-> ->add('user_id', 'choice_ajax', [
'action' => action('Admin\UserController@postSearch'),
'validation' => '
php
// ------------------------------------------------------------------------------------------------
public function postSearch()
{
$ids = Input::get('ids');
if (!empty($ids))
{
$data = $this->model->whereIn($this->model->getKeyName(), $ids)->get();
return Response::json($data);
}
$term = Input::get('term');
$page = Input::get('page');
$paged = Input::get('page_limit');
if (empty($paged))
{
$paged = 10;
}
if (empty($page))
{
$page = 1;
}
if (empty($term))
{
$elements = array();
$total = 0;
} else
{
$elements = $this->model->search($term)->take($paged)->skip(($page - 1) * $paged)->get();
$total = $this->model->search($term)->count();
}
return Response::json([
'total' => $total,
'elements' => $elements
]);
}
php
$this->add('cc', 'tag', [
'label' => _('CC')
])
php
$this->add('file', 'upload',
[
'label' => _('File'),
'validation' => '
php
$this->add('description', 'tinymce', [
'label' => _('Description')
]);
php
$this->add('description', 'textarea', [
'label' => _('Description')
]);
php
$this->add('submit', 'submit',
[
'label' => _('Save'),
'attr' => [
'class' => 'btn green'
],
], false, true)
->add('back', 'button',
[
'label' => _('Back'),
'attr' => [
'class' => 'btn default',
'onclick' => 'window.history.back()'
],
], false, true);
php
$this->add('address', 'address_picker', [
'default_value' => [
'lat' => 10,
'lng' => 10,
'street' => '42 Wallaby Way',
'city' => 'Sydney',
'country' => 'Australia',
'default' => '42 Wallaby Way, Sydney, Australia',
]
]
]);
php
$this
->add('address', 'form', [
'label' => _('Address'),
'icon' => 'globe',
'class' => \FormBuilder::create('Project\Forms\AddressForm', [
'model' => $address,
'do_not_display_profile_id' => true
])
]);
ssh
php artisan route:cache && php artisan route:list