Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Programmering og webdesign \ Programmering
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

PHP: Hvordan kobler jeg forumtråd sammen med bille...

Af Gæst Martinelli | 19-04-2023 07:15 | 1962 visninger | 11 svar, hop til seneste
Hey! Jeg er i gang med at programmere (PHP + Symfony) et debatforum, hvor det i øjeblikket er muligt at oprette tråde og svar til tråde. Det hele fungerer. Jeg vil nu gerne gøre det muligt at uploade billeder til sin tråd. Jeg har derfor tilføjet et separat Dropzone felt (nedenunder overskrift og indlægfeltet), som i øjeblikket gør det muligt at uploade et eller flere billeder på samme tid. Jeg vil gerne koble disse billeder sammen med tråden gennem trådens id - men hvordan gør jeg det, når tråden ikke er oprettet endnu?! Mine to entities: ForumPost (id, overskrift, indlæg) ForumPostImage (id, filnavn, forum_post_id)
--
Gæstebruger, opret dit eget login og få din egen signatur.
#1
Azakiel
Skribent
19-04-2023 07:44

Rapporter til Admin
Venter med at gemme billederne til databasen, indtil tråden er oprettet?
--
Veni, Vidi, Vici. dimidium facti qui coepit habet faber est quisque fortunae suae
#2
ZulfoDK
Giga Supporter
19-04-2023 07:50

Rapporter til Admin
Enig med #1 Når du "poster" din side, inserter du i ForumPost, og hiver id'et med tilbage, og så inserter du i ForumPostImage, og sætter det forum_post_id der lige er returneret i forrige query.
--
----------------- Lars B. / ZulfoDK
#3
Hester
Gæst
19-04-2023 07:55

Rapporter til Admin
#1 +1 Du bliver nød til at vente på at dit forum post er oprettet, så sende IDét videre, derefter gemme billederne. $em->persist($forumPost);$em->flush();$forumPost->getId(); Sådan noget lignende.
--
Gæstebruger, opret dit eget login og få din egen signatur.
#4
Martinelli
Gæst
19-04-2023 10:37

Rapporter til Admin
Det giver god mening. Men hvordan skal jeg rent praktisk ændre min nuværende logik? I øjeblikket har jeg opdelt det i to forms: 1. Overskrift + Indlæg 2. Dropzone upload Her uploades billederne direkte gennem mit dropzone felt, og hvert enkelt billede oprettes som et ForumPostImage - naturligvis stadig uden korrekt forum_post_id reference: $forumPostImage = new ForumPostImage(); $em->persist($forumPostImage); $em->flush(); Ovenstående køres gennem to controllers - men det vil jeg gerne have ændret til noget i denne stil (i korte træk): 1. Udfyld overskrift overskrift og indlæg 2. Upload billede gennem Dropzone. I dette tilfælde vil jeg gerne have en action, der opretter et ForumPostImage objekt med alt data lige på nær forum_post_id, som så først sættes til sidst: $forumPostImage = new ForumPostImage(); 3. Klik "Opret": $forumPost = new ForumPost(); $em->persist($forumPost); $forumPostImage->setForumPost($forumPost); $em->persist($forumPostImage); $em->flush(); Håber det giver mening :o)
--
Gæstebruger, opret dit eget login og få din egen signatur.
#5
Hester
Gæst
19-04-2023 10:58

Rapporter til Admin
Hvis du smider billederne op med det samme, så har de en reference du bliver nød til at skyde tilbage. Der efter kan du op samle dem og lave et loop der smider Forum post ID ind efter du har fået det ID.
--
Gæstebruger, opret dit eget login og få din egen signatur.
#6
Martinelli
Gæst
19-04-2023 12:07

Rapporter til Admin
#5 > Hvordan skyder jeg referencen tilbage? Jeg kan ikke lige selv lure det.
--
Gæstebruger, opret dit eget login og få din egen signatur.
#7
kihen
Gæst
19-04-2023 16:21

Rapporter til Admin
Det kunne du gøre som en samlet database transaktion.
--
Gæstebruger, opret dit eget login og få din egen signatur.
#8
Martinelli
Gæst
19-04-2023 17:18

Rapporter til Admin
#7 > Har du et eksempel på det?
--
Gæstebruger, opret dit eget login og få din egen signatur.
#9
ZulfoDK
Giga Supporter
20-04-2023 10:20

Rapporter til Admin
Nu har jeg ikke selv rodet med Doctrine, og kun lavet lidt googling - men hvis ForumPost's id er auto_increment, kan du så ikke lave en $em->getId(); og få et ID returneret ? Den skal selvfølgelig laves efter $em->flush();
--
----------------- Lars B. / ZulfoDK
#10
Martinelli
Gæst
23-04-2023 21:28

Rapporter til Admin
#9 > Jo, man kan godt få ID'et efter et flush - men problemet er, at jeg gerne vil have fat i ID'et før flushet. Som jeg læser Doctrine docs, så er det faktisk ikke muligt at få ID'et før et flush, så jeg er spændt på at se, hvilken workaround der så findes i stedet. Man kan vel lave et persist + flush, så snart brugeren våger sig ind på Opret-siden -- og så lave et nyt persist + flush, så snart der trykkes på Submit-knappen. Men problemet er så, at hvis forfatteren fortryder og aldrig trykker på Submit-knappen, så ender det med at være en tom række i min ForumPost tabel :o)
--
Gæstebruger, opret dit eget login og få din egen signatur.
#11
NightBreaker
Super Supporter
23-04-2023 21:49

Rapporter til Admin
Char GPT.
--

Opret svar til indlægget: PHP: Hvordan kobler jeg forumtråd sammen med bille...

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning


ANNONCE