create site with form to add offerings
This commit is contained in:
parent
781c8602d9
commit
b212d1fa74
4 changed files with 53 additions and 0 deletions
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller;
|
||||||
|
|
||||||
|
use App\Entity\Offering;
|
||||||
|
use App\Form\OfferingFormType;
|
||||||
use App\Repository\OfferingRepository;
|
use App\Repository\OfferingRepository;
|
||||||
|
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
|
@ -26,4 +28,17 @@ class AppController extends AbstractController
|
||||||
'user' => $this->getUser(),
|
'user' => $this->getUser(),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[Route('/new', name: 'new_listing')]
|
||||||
|
public function new_listing(): Response
|
||||||
|
{
|
||||||
|
$offering = new Offering();
|
||||||
|
$form = $this->createForm(OfferingFormType::class, $offering);
|
||||||
|
|
||||||
|
|
||||||
|
return $this->render('app/new_listing.html.twig', [
|
||||||
|
'user' => $this->getUser(),
|
||||||
|
'offering_form' => $form->createView(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
30
src/Form/OfferingFormType.php
Normal file
30
src/Form/OfferingFormType.php
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Form;
|
||||||
|
|
||||||
|
use App\Entity\Offering;
|
||||||
|
use Symfony\Component\Form\AbstractType;
|
||||||
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
|
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||||
|
|
||||||
|
class OfferingFormType extends AbstractType
|
||||||
|
{
|
||||||
|
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||||
|
{
|
||||||
|
$builder
|
||||||
|
->add('createdAt')
|
||||||
|
->add('title')
|
||||||
|
->add('photoFilename')
|
||||||
|
->add('zipCode')
|
||||||
|
->add('description')
|
||||||
|
->add('byUser')
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function configureOptions(OptionsResolver $resolver)
|
||||||
|
{
|
||||||
|
$resolver->setDefaults([
|
||||||
|
'data_class' => Offering::class,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
5
templates/app/new_listing.html.twig
Normal file
5
templates/app/new_listing.html.twig
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{% extends 'base.html.twig' %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
{{ form(offering_form) }}
|
||||||
|
{% endblock %}
|
|
@ -31,6 +31,9 @@
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="{{ path('user_page') }}">User</a>
|
<a class="nav-link" href="{{ path('user_page') }}">User</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="nav-link" href="#"><i class="fas fa-plus-square"></i> New</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<form class="form-inline my-2 my-lg-0">
|
<form class="form-inline my-2 my-lg-0">
|
||||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||||
|
|
Reference in a new issue