Просмотр исходного кода

another non-working template

controller
DESKTOP-Q2SHMM6\ernes 2 лет назад
Родитель
Сommit
eb5827447b

+ 28
- 59
public/index.php Просмотреть файл

@@ -32,32 +32,34 @@ $container->set(
);


$app->map(['GET', 'POST'], "/orders/{client}/create", function (Request $request, Response $response, array $args) {
if ($request->getMethod() == "GET") {
// $db2 = new myDB();
// $stmt2 = $db2->prepare("SELECT * FROM clients WHERE id = " . $args['client']);
// $res2 = $stmt2->execute();
// $a = $res2->fetchArray(SQLITE3_ASSOC);
$db2 = new Order($this->container);
$res2 = $db2->getClient($args['client']);
$a = $res2->fetchArray(SQLITE3_ASSOC);

$response->getBody()->write("<h1>Create order for" . $a['firstname'] . " " . $a['lastname'] . "</h1><hr/>");
$response->getBody()->write('<form action="/orders/' . $args['client'] . '/create" method="post">');
$response->getBody()->write('<label for="id">Reference: </label>');
$response->getBody()->write('<input type="text" name="reference">');
$response->getBody()->write('<input type="submit">');
$response->getBody()->write('</form>');

return $response;
} else {
$ref = $request->getParsedBody()['reference'];
$db2 = new myDB();
$sql = "insert into orders (reference, customer_id, vat, subtotal, total) values ('" . $ref . "', " . $args['client'] . ",0,0,0)";
$db2->exec($sql);
return $response->withHeader('Location', '/orders/' . $args['client']);
};
});
$app->get("/orders/{client}/create", \Shop\Controller\ClientCreate::class . ':createGet');

// $app->map(['GET', 'POST'], "/orders/{client}/create", function (Request $request, Response $response, array $args) {
// if ($request->getMethod() == "GET") {
// // $db2 = new myDB();
// // $stmt2 = $db2->prepare("SELECT * FROM clients WHERE id = " . $args['client']);
// // $res2 = $stmt2->execute();
// // $a = $res2->fetchArray(SQLITE3_ASSOC);
// $db2 = new Order($this->container);
// $res2 = $db2->getClient($args['client']);
// $a = $res2->fetchArray(SQLITE3_ASSOC);

// $response->getBody()->write("<h1>Create order for" . $a['firstname'] . " " . $a['lastname'] . "</h1><hr/>");
// $response->getBody()->write('<form action="/orders/' . $args['client'] . '/create" method="post">');
// $response->getBody()->write('<label for="id">Reference: </label>');
// $response->getBody()->write('<input type="text" name="reference">');
// $response->getBody()->write('<input type="submit">');
// $response->getBody()->write('</form>');

// return $response;
// } else {
// $ref = $request->getParsedBody()['reference'];
// $db2 = new myDB();
// $sql = "insert into orders (reference, customer_id, vat, subtotal, total) values ('" . $ref . "', " . $args['client'] . ",0,0,0)";
// $db2->exec($sql);
// return $response->withHeader('Location', '/orders/' . $args['client']);
// };
// });

// Route with optional params, see https://www.slimframework.com/docs/v4/objects/routing.html#how-to-create-routes section Optional segments
$app->get('/orders[/{client}]', function (Request $request, Response $response, array $args) {
@@ -154,39 +156,6 @@ $app->map(['GET', 'POST'], "/order/{id}/create", function (Request $request, Res

$app->get('/order/{id}', \Shop\Controller\OrderID::class . ':orderID');

// $app->get('/order/{id}', function (Request $request, Response $response, array $args) {

// $db = new myDB();

// // detail orderlijnen
// $sql = "SELECT * FROM order_lines o LEFT JOIN products p on o.product_id = p.id where o.order_id = " . $args['id'];
// $stmt = $db->prepare($sql);
// $res = $stmt->execute();

// // detail order
// $db2 = new myDB();
// $stmt = $db2->prepare("SELECT * FROM orders WHERE id = " . $args['id']);
// $res2 = $stmt->execute();
// $a = $res2->fetchArray(SQLITE3_ASSOC);
// $response->getBody()->write('<a href="/order/' . $args['id'] . '/create">Add orderline</a>');


// $response->getBody()->write("<h1>ORDER DETAILS FOR ORDER " . $a['reference'] . "</h1>");
// $response->getBody()->write('<hr/>');
// $response->getBody()->write("<table>");
// while ($row = $res->fetchArray(SQLITE3_ASSOC)) {
// // maak hier een deftige tabel van
// $response->getBody()->write("<tr><td>" . " " . $row['id'] . " " . $row["itemnumber"] . " " . $row['name'] . " " . $row['qty'] . " " . $row['subtotal'] . " " . $row['vat'] . " " . $row['total'] . "</td></tr>");
// }
// $response->getBody()->write("</table>");
// $response->getBody()->write('<hr/>');

// $response->getBody()->write('<a href="/customers">Back to customer list</a> <a href="/orders">Back to order list</a>');

// return $response;
// });


$app->get('/customers', \Shop\Controller\Clients::class . ':clients');

$app->run();

+ 67
- 0
src/Controller/ClientCreate.php Просмотреть файл

@@ -0,0 +1,67 @@
<?php

namespace Shop\Controller;

use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Container\ContainerInterface;
use Shop\DB\Order;

class ClientCreate
{
protected $container;
protected $twig;
protected $vars;

public function __construct(ContainerInterface $container) {
$this->container = $container;
}

public function createGet(ServerRequestInterface $request, ResponseInterface $response, array $args) {
$container = $this->container;
$twig = $container->get('twig');

$db = new Order($this->container);
$client = $db->getClient($args['client']);


$vars = ["client" => $client, "args" => $args['client']];

$a = $twig->render('clientcreate.html.twig', $vars);
$response->getBody()->write($a);
return $response;


}

public function createPost(ServerRequestInterface $request, ResponseInterface $response, array $args) {
$container = $this->container;
$twig = $container->get('twig');
}
}

// if ($request->getMethod() == "GET") {
// // $db2 = new myDB();
// // $stmt2 = $db2->prepare("SELECT * FROM clients WHERE id = " . $args['client']);
// // $res2 = $stmt2->execute();
// // $a = $res2->fetchArray(SQLITE3_ASSOC);
// $db2 = new Order($this->container);
// $res2 = $db2->getClient($args['client']);
// $a = $res2->fetchArray(SQLITE3_ASSOC);

// $response->getBody()->write("<h1>Create order for" . $a['firstname'] . " " . $a['lastname'] . "</h1><hr/>");
// $response->getBody()->write('<form action="/orders/' . $args['client'] . '/create" method="post">');
// $response->getBody()->write('<label for="id">Reference: </label>');
// $response->getBody()->write('<input type="text" name="reference">');
// $response->getBody()->write('<input type="submit">');
// $response->getBody()->write('</form>');

// return $response;
// } else {
// $ref = $request->getParsedBody()['reference'];
// $db2 = new myDB();
// $sql = "insert into orders (reference, customer_id, vat, subtotal, total) values ('" . $ref . "', " . $args['client'] . ",0,0,0)";
// $db2->exec($sql);
// return $response->withHeader('Location', '/orders/' . $args['client']);
// };

+ 0
- 1
src/Controller/OrderID.php Просмотреть файл

@@ -11,7 +11,6 @@ class OrderID
{
protected $container;
protected $twig;
protected $vars;

public function __construct(ContainerInterface $container)
{

+ 9
- 1
src/DB/Order.php Просмотреть файл

@@ -3,6 +3,7 @@
namespace Shop\DB;

use Shop\Model\Order as OrderModel;
use Shop\Model\OrderCreate as OrderCreate;
use Shop\DB\myDB;

class Order
@@ -10,6 +11,7 @@ class Order
protected $container;
protected $orderlines = [];
protected $details = [];
protected $clients = [];

public function __construct($container) {
$this->container = $container;
@@ -56,6 +58,12 @@ class Order
$stmt = $db->prepare($sql);
$stmt->bindValue(':id', $id, SQLITE3_INTEGER);
$res = $stmt->execute();
return $res;
while ($result = $res->fetchArray(SQLITE3_ASSOC)) {
$client = new OrderCreate($this->container);
$client->setFirstname($result['firstname']);
$client->setLastname($result['lastname']);
$this->clients[] = $client;
}
return $this->clients;
}
}

+ 41
- 0
src/Model/OrderCreate.php Просмотреть файл

@@ -0,0 +1,41 @@
<?php

namespace Shop\Model;

class OrderCreate
{
protected $container;
protected $firstname;
protected $lastname;

protected $reference;

public function __construct($container)
{
$this->container = $container;
}

public function setFirstname($value) {
$this->firstname = $value;
}

public function getFirstname() {
return $this->firstname;
}

public function setLastname($value) {
$this->lastname = $value;
}

public function getLastname() {
return $this->lastname;
}

public function setReference($value) {
$this->reference = $value;
}

public function getReference() {
return $this->reference;
}
}

+ 10
- 0
templates/clientcreate.html.twig Просмотреть файл

@@ -0,0 +1,10 @@
{% extends "base.html.twig" %} {% block main %}

<h1>Create order for {{ client.firstname }} {{ client.lastname }}</h1>
<hr />
<form action="/orders/{{ args }}/create" method="post">
<label for="id">Reference: </label>
<input type="text" name="reference" />
<input type="submit" />
</form>
{% endblock %}

Загрузка…
Отмена
Сохранить