Opvragen van informatie in Symfony

Status
Niet open voor verdere reacties.

Pepsiman

Gebruiker
Lid geworden
19 sep 2010
Berichten
252
Hallo,

Ik heb inmiddels bezig met een project waarbij ik een Voorraad Management Systeem moet gaan ontwerpen.

Vanuit dit scherm:
2894ba7e1439966771351ac1126ec728.png

Wil ik naar een scherm met een overzicht. Wanneer ik nu op 'Zoeken' klik, krijg ik dit scherm:
bd13a456acce85cf962ee22943a2bb31.png

Ik kan helaas de fout niet vinden en hoop dat iemand mij hierbij kan helpen.
 
Kan je de code als text plaatsen? Dat werkt makkelijker.
 
Form Type:
PHP:
<?php
namespace AppBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\Constraints\Length;
use Symfony\Component\Validator\Constraints\Range;
use Symfony\Component\Validator\Constraints\Regex;

use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\MoneyType;
use Symfony\Component\Form\Extension\Core\Type\UrlType;
use Symfony\Component\Form\Extension\Core\Type\EntityType;

//EntiteitType vervangen door b.v. ArtikelType
class LocatieType extends AbstractType
{
    private $artikelnummer;
    public function setMailer(MailerInterface $artikelnummer)
    {
      $this->artikelnummer = $artikelnummer;
    }

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
		//gebruiken wat je nodig hebt, de id hoeft er niet bij als deze auto increment is
        $builder
            ->add('artikelnummer', IntegerType::class, array('label' => 'Artikelnummer:', 'disabled' => true))
            ->add('magazijnlocatie', TextType::class, array('label' => 'Magazijnlocatie:'))
        ;
    }

	public function configureOptions(OptionsResolver $resolver)
	{
		$resolver->setDefaults(array(
			'data_class' => 'AppBundle\Entity\Artikel', //Entiteit vervangen door b.v. Klant
		));
	}
}
?>
 
Controller:

PHP:
<?php
namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use AppBundle\Entity\Artikel;
use AppBundle\Form\Type\WijzigArtikelType;
use AppBundle\Form\Type\LocatieType;
use AppBundle\Form\Type\ZoekLocatieType;

class WijzigingMagazijnlocatieController extends Controller
{

  /**
  * 1. Locatie opvragen
  * @Route("/locatie/opvragen/", name="locatieopvragen")
  */
 public function opvragenLocatie(Request $request) {
   $artikelnummer = new artikel();
   $form = $this->createForm(ZoekLocatieType::class, $artikelnummer);
   $form->handleRequest($request);

   if ($form->isSubmitted() && $form->isValid()) {
    return $this->redirect($this->generateUrl('locatieinzien', array('artikelnummer' => $artikelnummer->getArtikelnummer())));
   }
     return new Response($this->renderView('LocatieOpvragen.html.twig', array('form' => $form->createView())));
 }

  /**
  * 2. Locatie met artikelnummer inzien, met daarin wijzig button
   * @Route("/locatie/artikel/{artikelnummer}", name="locatieinzien")
   */
  public function inzienLocatie(Request $request, $artikelnummer) {
      $artikelen = $this->getDoctrine()->getRepository("AppBundle:Artikel")->findByartikelnummer($artikelnummer);
      $tekst = "";
      foreach($artikelen as $artikel) {
        $tekst = $tekst . "Artikelnummer:" . $artikel->getartikelnummer() . "<br /> Magazijnlocatie:" . $artikel->getmagazijnlocatie() . "<br />";
      }
      return new Response($this->renderView('LocatieInzien.html.twig', array('Artikel' => $artikelnummer)));
    }
 
Twig File:

PHP:
{% extends 'base.html.twig' %}
{% block body %}
		<h1>Magazijn locatie</h1>
<div class="container">

	<table class="table table-triped table-borderd table-hover" id="artikel">

			<tr>
				<th>Artikelnummer</th>
				<th>Magazijn locatie</th>
				<th></th>
			</tr>
							<tr>
									{% for Artikel in Artikelen %}
								<td>{{ Artikel.Artikelnummer }}</td>
								<td>{{ Artikel.Magazijnlocatie }}</td>
								<td><a href="{{ path('locatiewijzigenbevestigen', {'artikelnummer':Artikel.Artikelnummer}) }}"><button type="button" class="btn btn-warning">Wijzigen</button></a></td>
							</tr>
								{% endfor %}
				</table>
			</div>
	</ol>
{% endblock %}
 
Inmiddels alles opgelost.

In de route:
* @Route("/locatie/artikel/{artikelnummer}", name="locatieinzien")


Was dit de foute code:
return new Response($this->renderView('LocatieInzien.html.twig', array('artikel' => $artikelnummer)));

En dit de goede:
return new Response($this->renderView('LocatieInzien.html.twig', array('artikelen' => $artikelen)));
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan