2016-04-15 4 views
-1

Ich versuche, ein Bild aus einer Datenbank mit PHP und twig anzuzeigen. Ich habe große Schwierigkeiten, dies zu erreichen. In meiner index.twig habe ich diese Codezeile: <a><img class="images" src="showImg.php?id={{ text.getImage() }}" /></a>. Die {{ text.getImage() }} kommt von einem for-loop und showImg.php wird die Abfrage der Auswahl des Bildes basierend auf dem angegebenen ID Parameter. In meinem showImg.php:So zeigen Sie ein Bild aus einer Datenbank mit PHP und Zweig

if (isset($_GET['id'])) { 
    $id = intval($_GET['id']); 
    $sql = "SELECT filename, mime, code FROM Img_col WHERE id = :id"; 
    $stmt = $this->db->prepare($sql); 
    $stmt->bindParam(':id', $id, PDO::PARAM_INT); 
    $stmt->execute(); 
    while($row = $stmt->fetchObject('Image')) { 
     $this->result[] = $row; 
    } 
    Header("Content-type: $img->getMime()"); 
    Header("Content-Disposition: filename=\"$img->getFileName()\""); 
    $img->hentCode(); 
} 

Mein erstes Problem ist, stoppt die IDE in der Linie $stmt = $this->db->prepare($sql); und mein zweites Problem ist, wie das Bild zu senden (code) zu index.twig. Irgendeine Idee oder ein Hinweis, um mir zu helfen, schätzen es sehr. Ich bin offen für alle Vorschläge

Antwort

0

Ich bin mir nicht sicher, was Sie erreichen möchten, aber das kann sehr schnell in Symfony getan werden. Sie benötigen eine Steuerung, die Ihre Antwort nach der Route schaffen:

/** 
* @Route("/image/{id}", name="image") 
*/ 
public function imageAction($id) 
{ 
    $image = $this->getDoctrine()->getRepository('AppBundle:Image')->findOneBy(array('id'=> $id)); 
    return $this->render('image.html.twig', array('image' => $image)); 
} 

Natürlich werden Sie eine einfache Image-Klasse in Ihrem AppBundle müssen mit mindestens zwei Feldern: id und imagename.

Und in Ihrem image.html.twig:

<img src="/images/{{ image.imageName }}"/> 

für weitere Informationen aus der Dokumentation Check: Symfony Documentation

Verwandte Themen