Fix some id generation issues
This commit is contained in:
parent
9c6c44f140
commit
46d5310ce5
@ -3,20 +3,21 @@
|
|||||||
namespace CameraBundle\Controller;
|
namespace CameraBundle\Controller;
|
||||||
|
|
||||||
use CameraBundle\Entity\Lenses;
|
use CameraBundle\Entity\Lenses;
|
||||||
|
use CameraBundle\Form\LensesType;
|
||||||
|
use Sensio\Bundle\FrameworkExtraBundle\Configuration\{Method, Route};
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
|
use Symfony\Component\Form\FormInterface;
|
||||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
use Symfony\Component\HttpFoundation\{Request, RedirectResponse};
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Lense controller.
|
* Lens controller.
|
||||||
*
|
*
|
||||||
* @Route("lens")
|
* @Route("lens")
|
||||||
*/
|
*/
|
||||||
class LensesController extends Controller
|
class LensesController extends Controller
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Lists all lense entities.
|
* Lists all lens entities.
|
||||||
*
|
*
|
||||||
* @Route("/", name="lens_index")
|
* @Route("/", name="lens_index")
|
||||||
* @Method("GET")
|
* @Method("GET")
|
||||||
@ -40,33 +41,33 @@ class LensesController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new lense entity.
|
* Creates a new lens entity.
|
||||||
*
|
*
|
||||||
* @Route("/new", name="lens_new")
|
* @Route("/new", name="lens_new")
|
||||||
* @Method({"GET", "POST"})
|
* @Method({"GET", "POST"})
|
||||||
*/
|
*/
|
||||||
public function newAction(Request $request)
|
public function newAction(Request $request)
|
||||||
{
|
{
|
||||||
$lense = new Lenses();
|
$lens = new Lenses();
|
||||||
$form = $this->createForm('CameraBundle\Form\LensesType', $lense);
|
$form = $this->createForm(LensesType::class, $lens);
|
||||||
$form->handleRequest($request);
|
$form->handleRequest($request);
|
||||||
|
|
||||||
if ($form->isSubmitted() && $form->isValid()) {
|
if ($form->isSubmitted() && $form->isValid()) {
|
||||||
$em = $this->getDoctrine()->getManager();
|
$em = $this->getDoctrine()->getManager();
|
||||||
$em->persist($lense);
|
$em->persist($lens);
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
return $this->redirectToRoute('lens_show', array('id' => $lense->getId()));
|
return $this->redirectToRoute('lens_show', array('id' => $lens->getId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->render('lenses/new.html.twig', array(
|
return $this->render('lenses/new.html.twig', array(
|
||||||
'lense' => $lense,
|
'lense' => $lens,
|
||||||
'form' => $form->createView(),
|
'form' => $form->createView(),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Finds and displays a lense entity.
|
* Finds and displays a lens entity.
|
||||||
*
|
*
|
||||||
* @Route("/{id}", name="lens_show")
|
* @Route("/{id}", name="lens_show")
|
||||||
* @Method("GET")
|
* @Method("GET")
|
||||||
@ -82,44 +83,66 @@ class LensesController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Displays a form to edit an existing lense entity.
|
* Displays a form to edit an existing lens entity.
|
||||||
*
|
*
|
||||||
* @Route("/{id}/edit", name="lens_edit")
|
* @Route("/{id}/edit", name="lens_edit")
|
||||||
* @Method({"GET", "POST"})
|
* @Method({"GET", "POST"})
|
||||||
*/
|
*/
|
||||||
public function editAction(Request $request, Lenses $lense)
|
public function editAction(Request $request, Lenses $lens)
|
||||||
{
|
{
|
||||||
$deleteForm = $this->createDeleteForm($lense);
|
$deleteForm = $this->createDeleteForm($lens);
|
||||||
$editForm = $this->createForm('CameraBundle\Form\LensesType', $lense);
|
$deacquireForm = $this->createDeacquireForm($lens);
|
||||||
|
$editForm = $this->createForm(LensesType::class, $lens);
|
||||||
$editForm->handleRequest($request);
|
$editForm->handleRequest($request);
|
||||||
|
|
||||||
if ($editForm->isSubmitted() && $editForm->isValid()) {
|
if ($editForm->isSubmitted() && $editForm->isValid()) {
|
||||||
$this->getDoctrine()->getManager()->flush();
|
$this->getDoctrine()->getManager()->flush();
|
||||||
|
|
||||||
return $this->redirectToRoute('lens_edit', array('id' => $lense->getId()));
|
return $this->redirectToRoute('lens_edit', array('id' => $lens->getId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->render('lenses/edit.html.twig', array(
|
return $this->render('lenses/edit.html.twig', array(
|
||||||
'lense' => $lense,
|
'lense' => $lens,
|
||||||
'edit_form' => $editForm->createView(),
|
'edit_form' => $editForm->createView(),
|
||||||
'delete_form' => $deleteForm->createView(),
|
'delete_form' => $deleteForm->createView(),
|
||||||
|
'deacquire_form' => $deacquireForm->createView()
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Deletes a lense entity.
|
* Moves a camera to the previouslyOwned table
|
||||||
|
*
|
||||||
|
* @Route("/{id}/deacquire", name="lens_deacquire")
|
||||||
|
* @Method("POST")
|
||||||
|
* @param Request $request
|
||||||
|
* @param Lenses $lens
|
||||||
|
* @return RedirectResponse
|
||||||
|
*/
|
||||||
|
public function deacquireAction(Request $request, Lenses $lens)
|
||||||
|
{
|
||||||
|
$form = $this->createDeacquireForm($lens);
|
||||||
|
$form->handleRequest($request);
|
||||||
|
|
||||||
|
$repository = $this->getDoctrine()->getRepository(Lenses::class);
|
||||||
|
$repository->deacquire($lens);
|
||||||
|
|
||||||
|
return $this->redirectToRoute('lens_index');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deletes a lens entity.
|
||||||
*
|
*
|
||||||
* @Route("/{id}", name="lens_delete")
|
* @Route("/{id}", name="lens_delete")
|
||||||
* @Method("DELETE")
|
* @Method("DELETE")
|
||||||
*/
|
*/
|
||||||
public function deleteAction(Request $request, Lenses $lense)
|
public function deleteAction(Request $request, Lenses $lens)
|
||||||
{
|
{
|
||||||
$form = $this->createDeleteForm($lense);
|
$form = $this->createDeleteForm($lens);
|
||||||
$form->handleRequest($request);
|
$form->handleRequest($request);
|
||||||
|
|
||||||
if ($form->isSubmitted() && $form->isValid()) {
|
if ($form->isSubmitted() && $form->isValid()) {
|
||||||
$em = $this->getDoctrine()->getManager();
|
$em = $this->getDoctrine()->getManager();
|
||||||
$em->remove($lense);
|
$em->remove($lens);
|
||||||
$em->flush();
|
$em->flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,17 +150,33 @@ class LensesController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a form to delete a lense entity.
|
* Creates a form to delete a lens entity.
|
||||||
*
|
*
|
||||||
* @param Lenses $lense The lense entity
|
* @param Lenses $lens The lens entity
|
||||||
*
|
*
|
||||||
* @return \Symfony\Component\Form\Form The form
|
* @return FormInterface The form
|
||||||
*/
|
*/
|
||||||
private function createDeleteForm(Lenses $lense)
|
private function createDeleteForm(Lenses $lens): FormInterface
|
||||||
{
|
{
|
||||||
return $this->createFormBuilder()
|
return $this->createFormBuilder()
|
||||||
->setAction($this->generateUrl('lens_delete', array('id' => $lense->getId())))
|
->setAction($this->generateUrl('lens_delete', array('id' => $lens->getId())))
|
||||||
->setMethod('DELETE')
|
->setMethod('DELETE')
|
||||||
->getForm();
|
->getForm();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a form to move
|
||||||
|
*
|
||||||
|
* @param Lenses $lens The lens entity
|
||||||
|
*
|
||||||
|
* @return FormInterface
|
||||||
|
*/
|
||||||
|
private function createDeacquireForm(Lenses $lens): FormInterface
|
||||||
|
{
|
||||||
|
return $this->createFormBuilder()
|
||||||
|
->setAction($this->generateUrl('lens_deacquire', ['id' => $lens->getId()]))
|
||||||
|
->setMethod('POST')
|
||||||
|
->getForm();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
namespace CameraBundle\Controller;
|
namespace CameraBundle\Controller;
|
||||||
|
|
||||||
use CameraBundle\Entity\PreviouslyOwnedCamera;
|
use CameraBundle\Entity\PreviouslyOwnedCamera;
|
||||||
|
use CameraBundle\Form\PreviouslyOwnedCameraType;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
|
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
|
||||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||||
@ -20,6 +21,7 @@ class PreviouslyOwnedCameraController extends Controller
|
|||||||
*
|
*
|
||||||
* @Route("/", name="previously-owned-camera_index")
|
* @Route("/", name="previously-owned-camera_index")
|
||||||
* @Method("GET")
|
* @Method("GET")
|
||||||
|
* @throws \UnexpectedValueException
|
||||||
*/
|
*/
|
||||||
public function indexAction()
|
public function indexAction()
|
||||||
{
|
{
|
||||||
@ -54,10 +56,11 @@ class PreviouslyOwnedCameraController extends Controller
|
|||||||
*
|
*
|
||||||
* @Route("/{id}/edit", name="previously-owned-camera_edit")
|
* @Route("/{id}/edit", name="previously-owned-camera_edit")
|
||||||
* @Method({"GET", "POST"})
|
* @Method({"GET", "POST"})
|
||||||
|
* @throws \LogicException
|
||||||
*/
|
*/
|
||||||
public function editAction(Request $request, PreviouslyOwnedCamera $previouslyOwnedCamera)
|
public function editAction(Request $request, PreviouslyOwnedCamera $previouslyOwnedCamera)
|
||||||
{
|
{
|
||||||
$editForm = $this->createForm('CameraBundle\Form\PreviouslyOwnedCameraType', $previouslyOwnedCamera);
|
$editForm = $this->createForm(PreviouslyOwnedCameraType::class, $previouslyOwnedCamera);
|
||||||
$editForm->handleRequest($request);
|
$editForm->handleRequest($request);
|
||||||
|
|
||||||
if ($editForm->isSubmitted() && $editForm->isValid()) {
|
if ($editForm->isSubmitted() && $editForm->isValid()) {
|
||||||
|
@ -17,7 +17,7 @@ class BatteryType
|
|||||||
*
|
*
|
||||||
* @ORM\Column(name="id", type="integer", nullable=false)
|
* @ORM\Column(name="id", type="integer", nullable=false)
|
||||||
* @ORM\Id
|
* @ORM\Id
|
||||||
* @ORM\GeneratedValue(strategy="SEQUENCE")
|
* @ORM\GeneratedValue(strategy="IDENTITY")
|
||||||
*/
|
*/
|
||||||
private $id;
|
private $id;
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,8 @@ class Camera
|
|||||||
*
|
*
|
||||||
* @ORM\Column(name="id", type="integer", nullable=false)
|
* @ORM\Column(name="id", type="integer", nullable=false)
|
||||||
* @ORM\Id
|
* @ORM\Id
|
||||||
* @ORM\GeneratedValue(strategy="SEQUENCE")
|
* @ORM\GeneratedValue(strategy="IDENTITY")
|
||||||
|
* @ORM\SequenceGenerator(sequenceName="camera_id_seq", allocationSize=1, initialValue=1)
|
||||||
*/
|
*/
|
||||||
private $id;
|
private $id;
|
||||||
|
|
||||||
|
@ -17,7 +17,8 @@ class CameraType
|
|||||||
*
|
*
|
||||||
* @ORM\Column(name="id", type="integer", nullable=false)
|
* @ORM\Column(name="id", type="integer", nullable=false)
|
||||||
* @ORM\Id
|
* @ORM\Id
|
||||||
* @ORM\GeneratedValue(strategy="SEQUENCE")
|
* @ORM\GeneratedValue(strategy="IDENTITY")
|
||||||
|
* @ORM\SequenceGenerator(sequenceName="camera.camera_type_id_seq", allocationSize=1, initialValue=1)
|
||||||
*/
|
*/
|
||||||
private $id;
|
private $id;
|
||||||
|
|
||||||
|
@ -19,7 +19,8 @@ class Flash
|
|||||||
*
|
*
|
||||||
* @ORM\Column(name="id", type="integer", nullable=false)
|
* @ORM\Column(name="id", type="integer", nullable=false)
|
||||||
* @ORM\Id
|
* @ORM\Id
|
||||||
* @ORM\GeneratedValue(strategy="SEQUENCE")
|
* @ORM\GeneratedValue(strategy="IDENTITY")
|
||||||
|
* @ORM\SequenceGenerator(sequenceName="camera.flash_id_seq", allocationSize=1, initialValue=1)
|
||||||
*/
|
*/
|
||||||
private $id;
|
private $id;
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ use Doctrine\ORM\Mapping as ORM;
|
|||||||
* Camera.lenses
|
* Camera.lenses
|
||||||
*
|
*
|
||||||
* @ORM\Table(name="lenses", schema="camera")
|
* @ORM\Table(name="lenses", schema="camera")
|
||||||
* @ORM\Entity
|
* @ORM\Entity(repositoryClass="CameraBundle\Repository\LensesRepository")
|
||||||
*/
|
*/
|
||||||
class Lenses
|
class Lenses
|
||||||
{
|
{
|
||||||
@ -19,7 +19,8 @@ class Lenses
|
|||||||
*
|
*
|
||||||
* @ORM\Column(name="id", type="integer", nullable=false)
|
* @ORM\Column(name="id", type="integer", nullable=false)
|
||||||
* @ORM\Id
|
* @ORM\Id
|
||||||
* @ORM\GeneratedValue(strategy="AUTO")
|
* @ORM\GeneratedValue(strategy="IDENTITY")
|
||||||
|
* @ORM\SequenceGenerator(sequenceName="camera.lenses_id_seq", allocationSize=1, initialValue=1)
|
||||||
*/
|
*/
|
||||||
private $id;
|
private $id;
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ class PreviouslyOwnedCamera
|
|||||||
*
|
*
|
||||||
* @ORM\Column(name="id", type="integer", nullable=false)
|
* @ORM\Column(name="id", type="integer", nullable=false)
|
||||||
* @ORM\Id
|
* @ORM\Id
|
||||||
* @ORM\GeneratedValue(strategy="SEQUENCE")
|
* @ORM\GeneratedValue(strategy="IDENTITY")
|
||||||
*/
|
*/
|
||||||
private $id;
|
private $id;
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ class PreviouslyOwnedFlash
|
|||||||
*
|
*
|
||||||
* @ORM\Column(name="id", type="integer", nullable=false)
|
* @ORM\Column(name="id", type="integer", nullable=false)
|
||||||
* @ORM\Id
|
* @ORM\Id
|
||||||
* @ORM\GeneratedValue(strategy="SEQUENCE")
|
* @ORM\GeneratedValue(strategy="IDENTITY")
|
||||||
*/
|
*/
|
||||||
private $id;
|
private $id;
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ class PreviouslyOwnedLenses
|
|||||||
*
|
*
|
||||||
* @ORM\Column(name="id", type="integer", nullable=false)
|
* @ORM\Column(name="id", type="integer", nullable=false)
|
||||||
* @ORM\Id
|
* @ORM\Id
|
||||||
* @ORM\GeneratedValue(strategy="SEQUENCE")
|
* @ORM\GeneratedValue(strategy="IDENTITY")
|
||||||
*/
|
*/
|
||||||
private $id;
|
private $id;
|
||||||
|
|
||||||
|
41
src/Repository/LensesRepository.php
Normal file
41
src/Repository/LensesRepository.php
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace CameraBundle\Repository;
|
||||||
|
|
||||||
|
use CameraBundle\Entity\{Lenses, PreviouslyOwnedLenses};
|
||||||
|
use Doctrine\ORM\EntityRepository;
|
||||||
|
|
||||||
|
class LensesRepository extends EntityRepository
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @param Lenses $currentRecord
|
||||||
|
* @throws \Doctrine\ORM\OptimisticLockException
|
||||||
|
*/
|
||||||
|
public function deacquire(Lenses $currentRecord)
|
||||||
|
{
|
||||||
|
$em = $this->getEntityManager();
|
||||||
|
|
||||||
|
$currentRecord->setFormerlyOwned(true);
|
||||||
|
|
||||||
|
$newRecord = new PreviouslyOwnedLenses();
|
||||||
|
|
||||||
|
$old = new \ReflectionObject($currentRecord);
|
||||||
|
$new = new \ReflectionObject($newRecord);
|
||||||
|
|
||||||
|
foreach ($old->getProperties() as $property) {
|
||||||
|
$propertyName = $property->getName();
|
||||||
|
if ($new->hasProperty($propertyName)) {
|
||||||
|
$newProperty = $new->getProperty($propertyName);
|
||||||
|
$newProperty->setAccessible(true);
|
||||||
|
$property->setAccessible(true);
|
||||||
|
$newProperty->setValue($newRecord, $property->getValue($currentRecord));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// dump($newRecord);
|
||||||
|
|
||||||
|
$em->persist($newRecord);
|
||||||
|
//$em->remove($currentRecord);
|
||||||
|
$em->flush();
|
||||||
|
}
|
||||||
|
}
|
@ -17,6 +17,7 @@
|
|||||||
<th>Actions</th>
|
<th>Actions</th>
|
||||||
<th>Id</th>
|
<th>Id</th>
|
||||||
<th>Type</th>
|
<th>Type</th>
|
||||||
|
<th>Description</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -31,7 +32,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td><a href="{{ path('camera-type_show', { 'id': cameraType.id }) }}">{{ cameraType.id }}</a></td>
|
<td><a href="{{ path('camera-type_show', { 'id': cameraType.id }) }}">{{ cameraType.id }}</a></td>
|
||||||
<td>{{ cameraType.type }}</td>
|
<td>{{ cameraType.type }}</td>
|
||||||
|
<td>{{ cameraType.description }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -33,6 +33,10 @@
|
|||||||
<th>Type</th>
|
<th>Type</th>
|
||||||
<td>{{ cameraType.type }}</td>
|
<td>{{ cameraType.type }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Description</th>
|
||||||
|
<td>{{ cameraType.description }}</td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
@ -19,6 +19,13 @@
|
|||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
|
|
||||||
|
{{ form_start(deacquire_form) }}
|
||||||
|
{{ form_widget(deacquire_form) }}
|
||||||
|
<button type="submit" class="button">De-acquire</button>
|
||||||
|
{{ form_end(deacquire_form) }}
|
||||||
|
|
||||||
|
<hr />
|
||||||
|
|
||||||
{{ form_start(delete_form) }}
|
{{ form_start(delete_form) }}
|
||||||
<button type="submit" class="alert button">Delete Lens</button>
|
<button type="submit" class="alert button">Delete Lens</button>
|
||||||
{{ form_end(delete_form) }}
|
{{ form_end(delete_form) }}
|
||||||
|
Loading…
Reference in New Issue
Block a user