composer create-project fabpot/silex-skeleton mi_proyecto/ 1.1.0
Instalar doctrine en el silex:
http://cazaresluis.com/silex-doctrine/
Crear en la carpeta web un htaccess con este texto:
<IfModule mod_rewrite.c> RewriteEngine On #<IfModule mod_vhost_alias.c> # RewriteBase / #</IfModule> RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [QSA,L] </IfModule>
controllers.php:
<?php
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
'db.options' => array(
'driver' => 'pdo_mysql',
'dbname' => 'mibasededatos',
'host' => 'localhost',
'user' => 'root',
'password' => '',
'charset' => 'utf8',
// Conexión en servidores locales por ejemplo MAMP
// 'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock'
)
));
$app->get('/blog/{id}', function ($id) use ($app) {
$sql = "SELECT * FROM consultas WHERE id = ?";
$post = $app['db']->fetchAssoc($sql, array((int) $id));
// $sql = "UPDATE consultas SET value = ? WHERE id = ?";
// $app['dbs']['mysql_write']->executeUpdate($sql, array('newValue', (int) $id));
return "<h1>{$post['consulta']}</h1>";
});
$app->get('/insertBlog/{email}/{consulta}', function ($email,$consulta) use ($app) {
$sql = "insert into consultas(email,consulta) values (?,?)";
$app['db']->executeUpdate($sql,
array($email,$consulta)
);
return true;
});
$app->get('/updateBlog/{id}', function ($id) use ($app) {
$sql = "UPDATE consultas SET consulta = ? WHERE id = ?";
$app['db']->executeUpdate($sql, array('newValue', (int) $id));
return true;
});
// ************** LISTAR CONSULTAS
$app->get('/listConsultas/', function () use ($app) {
$sql = "SELECT * FROM consultas";
$arrConsultas = $app['db']->fetchAll($sql, array());
return $app['twig']->render('listConsultas.html.twig',
array('arrConsultas' => $arrConsultas));
})
->bind('listConsultaspage')
;
// ************** AÑADIR CONSULTA
$app->get('/formAddConsulta/', function () use ($app) {
return $app['twig']->render('formAddConsulta.html.twig',
array());
})
->bind('formAddConsultapage')
;
$app->post('/putConsulta', function (Request $request) use ($app) {
$nombre_completo = $request->get("nombre_completo");
$email = $request->get("email");
$telefono = $request->get("telefono");
$consulta = $request->get("consulta");
$sql = "insert into consultas(nombre_completo, email, telefono, consulta) values (?,?,?,?)";
$app['db']->executeUpdate($sql,
array($nombre_completo, $email, $telefono, $consulta)
);
// listar
return ("Insertado correctamente.<br><a href='listConsultas'>Listar</a>");
})
->bind('putConsultapage')
;
// ****************** MODIFICAR CONSULTA
$app->get('/formModConsulta/{id}', function ($id) use ($app) {
$sql = "SELECT * FROM consultas where id=?";
$arrConsultas = $app['db']->fetchAssoc($sql, array((int) $id));
return $app['twig']->render('formModConsulta.html.twig',
array('arrConsultas' => $arrConsultas));
})
->bind('formModConsultapage')
;
$app->post('/putModConsulta', function (Request $request) use ($app) {
$id = $request->get("id");
$nombre_completo = $request->get("nombre_completo");
$email = $request->get("email");
$telefono = $request->get("telefono");
$consulta = $request->get("consulta");
$sql = "UPDATE consultas SET nombre_completo = ?, email = ?, telefono = ?, consulta = ? WHERE id = ?";
$app['db']->executeUpdate($sql,
array($nombre_completo, $email, $telefono, $consulta, $id)
);
// listar
return ("Modificado correctamente.<br><a href='listConsultas'>Listar</a>");
})
->bind('putModConsultapage')
;
// ************** BORRAR CONSULTA
$app->get('/delConsulta/{id}', function ($id) use ($app) {
$sql = "delete FROM consultas where id = ?";
$app['db']->executeUpdate($sql,
array($id)
);
// listar
return ("Borrado correctamente.<br><a href='../listConsultas'>Listar</a>");
})
->bind('delConsultapage')
;
?>
formAddConsulta.html.twig:
{% extends "layout.html.twig" %}
{% block content %}
<form method="post" action="../putConsulta" id="sigin" name="sigin">
Nombre completo: <input type="text" id="nombre_completo" name="nombre_completo"><br>
Email: <input type="email" id="email" name="email"><br>
Telefono: <input type="text" id="telefono" name="telefono"><br>
consulta: <input type="text" id="consulta" name="consulta"><br>
<input type="submit" value="Dar de alta">
</form>
{% endblock %}
formDelConsulta.html.twig:
{% extends "layout.html.twig" %}
{% block content %}
<form method="post" action="delConsulta" id="sigin" name="sigin">
Consulta a borrar:
<select name="id_consulta">
{% for item in arrConsultas %}
<option value="{{ item.id }}">{{ item.consulta }}</option>
{% endfor %}
</select>
<input type="submit" value="Borrar">
</form>
{% endblock %}
formModConsulta.html.twig:
{% extends "layout.html.twig" %}
{% block content %}
<h1>MODIFICAR CONSULTA</h1>
<form method="post" action="../putModConsulta" id="sigin" name="sigin">
<input type="hidden" name="id" id="id" value="{{arrConsultas.id}}">
Nombre completo: <input type="text" id="nombre_completo" name="nombre_completo" value="{{arrConsultas.nombre_completo}}"><br>
Email: <input type="email" id="email" name="email" value="{{arrConsultas.email}}"><br>
Teléfono: <input type="text" id="telefono" name="telefono" value="{{arrConsultas.telefono}}"><br>
consulta: <input type="text" id="consulta" name="consulta" value="{{arrConsultas.consulta}}"><br>
<input type="submit" value="Modificar">
</form>
{% endblock %}
listConsultas.html.twig:
{% extends "layout.html.twig" %}
{% block content %}
Consultas:
<table border="1">
<tr>
<td>NOMBRE COMPLETO</td>
<td>EMAIL</td>
<td>TELEFONO</td>
<td>CONSULTA</td>
<td colspan="2">
</td>
</tr>
{% for item in arrConsultas %}
<tr>
<td>{{ item.nombre_completo }}</td>
<td>{{ item.email }}</td>
<td>{{ item.telefono }}</td>
<td>{{ item.consulta }}</td>
<td>
<a href="../formModConsulta/{{ item.id }}">Modificar</a>
<a href="../delConsulta/{{ item.id }}">Borrar</a>
</td>
</tr>
{% endfor %}
</table>
<a href="../formAddConsulta">Añadir consulta</a>
{% endblock %}

No hay comentarios:
Publicar un comentario