This post
help to create form used in database operations like
insertion,deletion,modification etc. in symfony. Symfony is one of the best
framework used to develop web application provides great security and code
redundancy. In this post we will learn how to create form in symphony. In PHP
we simply create form using html and sent data to sql operation sung POST or
GET. But in Symfony, we will use form element for this purpose.
STEP-1
First of all create symfony application and
configure it with database etc. Then we will generate Bundle using below
commend in which Bundle Name is `loginBundle`
cd [app. path]
Php app/console
generate: bundle LoginBundle
STEP-2
Map MySQL
database and create entity using below commends.
Php app/console
doctrine:mapping:import LoginBundle
Php app/console
doctrine:generate:entities LoginBundle
Our
Login.php file at source/LoginBundle/Resources/Entity/Login.php will look like
namespace
Sym\FormBundle\Entity;
use Doctrine\ORM\Mapping
as ORM;
/**
* TblCust
*/
class TblCust
{
/**
*
@var string
*/
private
$custName;
/**
*
@var string
*/
private
$custCity;
/**
*
@var string
*/
private
$custAddress;
/**
*
@var integer
*/
private
$custPhno;
/**
*
@var integer
*/
private
$id;
/**
*
Set custName
*
*
@param string $custName
*
@return TblCust
*/
public
function setCustName($custName)
{
$this->custName = $custName;
return $this;
}
/**
*
Get custName
*
*
@return string
*/
public
function getCustName()
{
return $this->custName;
}
/**
*
Set custCity
*
*
@param string $custCity
*
@return TblCust
*/
public
function setCustCity($custCity)
{
$this->custCity = $custCity;
return $this;
}
/**
*
Get custCity
*
*
@return string
*/
public
function getCustCity()
{
return $this->custCity;
}
/**
*
Set custAddress
*
*
@param string $custAddress
*
@return TblCust
*/
public
function setCustAddress($custAddress)
{
$this->custAddress = $custAddress;
return $this;
}
/**
*
Get custAddress
*
*
@return string
*/
public
function getCustAddress()
{
return $this->custAddress;
}
/**
*
Set custPhno
*
*
@param integer $custPhno
*
@return TblCust
*/
public
function setCustPhno($custPhno)
{
$this->custPhno = $custPhno;
return $this;
}
/**
*
Get custPhno
*
*
@return integer
*/
public
function getCustPhno()
{
return $this->custPhno;
}
/**
*
Get id
*
*
@return integer
*/
public
function getId()
{
return $this->id;
}
}
STEP-3
Generate
Form named TblCustType using below commend
Php app/console
doctrine:generate:form
STEP-4
Now, we
have mysql database and ready to use then copy Yml file and past to
`source/LoginBundle/Resources/config/routing.yml`
//
Routing.yml
form_homepage:
pattern:
/Form
defaults:
{ _controller: FormBundle:Default:index }
STEP-5
and
Defaultcontroller.php to
`source/LoginBundle/controller/DefaultController.php`
// DefaultController.php
namespace
Sym\FormBundle\Controller;
use
Symfony\Bundle\FrameworkBundle\Controller\Controller;
use
Sym\FormBundle\Entity\TblCust;
use
Symfony\Component\HttpFoundation\Request;
use
Sym\FormBundle\Form\TblCustType;
use
Symfony\Component\HttpFoundation\Response;
class DefaultController
extends Controller
{
public
function indexAction(Request $request)
{
$tbl = new TblCust();
$form = $this->createFormBuilder($tbl)
->add('custName','text',array('required'=>true))
->add('custCity','text',array('required'=>true))
->add('custAddress','text')
->add('custPhno','text')
->add('save','submit')
->getForm();
$form->handleRequest($request);
if($form->isValid()){
$Tbl = new TblCust();
$Tbl->setCustAddress($request->get('custName'));
$Tbl->setCustCity($request->get('custCity'));
$Tbl->setCustAddress($request->get('custAddress'));
$em = $this->getDoctrine()->getManager();
$em -> persist($tbl);
$em->flush();
return
$this->render('FormBundle:Default:index.html.twig',array('message'
=> 'Record Inserted'));
}
$build['form']=$form->createView();
return $this->render('FormBundle:Default:index.html.twig',array(
'form' => $form->createView()));
}
}
STEP-6
Create
html.twig file at sources/LoginBundle/Resources/view/Default/index.html.twig
and past below code in it.
Dynamic Form Example
{% block gender_widget
%}
{%
spaceless %}
{% if form is defined%}
{% for child in form %}
·
{{ form_label(child) }}
{{ form_widget(child) }}
{% endfor %}
{% else %}
{# just let the choice widget render the select tag #}
{{ block('choice_widget') }}
{% endif %}
{%
endspaceless %}
{% endblock %}
{% block container %}
{%if
message is defined%}
{{message}}
{%endif%}
{% endblock%}
That’s it our form is
ready to use and look like below
OutPut |
We can
use bootstrap or CSS style to make it attractive.
For any
help and issues contact me at blog.
0 comments:
Post a Comment