Ayuda laravel. Filas dinámica

  • Autor Autor zorrero
  • Fecha de inicio Fecha de inicio
zorrero

zorrero

Dseda
Social Media
Verificación en dos pasos activada
Verificado por Binance
Buenas! Estoy intentando hacer algo y no he encontrado la solución.

Puntualmente lo que necesito es obtener registros de una base de datos y dentro de los registros hay una columna que se llama por ejemplo "Pregunta".

Y las preguntas se formulan así: 'A $username le gusta jugar al tenis?'

Cual es la manera correcta de imprimir registros de la base de datos colocando dentro del string obtenido una variable?

Desde ya muchas gracias 🙂
 
Buenas! Estoy intentando hacer algo y no he encontrado la solución.

Puntualmente lo que necesito es obtener registros de una base de datos y dentro de los registros hay una columna que se llama por ejemplo "Pregunta".

Y las preguntas se formulan así: 'A $username le gusta jugar al tenis?'

Cual es la manera correcta de imprimir registros de la base de datos colocando dentro del string obtenido una variable?

Desde ya muchas gracias 🙂
Hola! Estaría encantado de ayudarte con tu problema pero porque no posteas tu código ?
 
A ${id_user} le gusta jugar al tenis?

luego con explode o preg match o como prefieras o lo forma mas optima que lo veas, con replace buscar

${} y remplazas.
 
Hola! Estaría encantado de ayudarte con tu problema pero porque no posteas tu código ?
Muchas gracias! No tengo un código hecho todavía pero si la estructura logica, lo que me limita es colocar una variable del usuario que se encuentra en sesión dentro de un registro.


A ${id_user} le gusta jugar al tenis?

luego con explode o preg match o como prefieras o lo forma mas optima que lo veas, con replace buscar

${} y remplazas.

Pero en tal caso, no se imprimiría A id_user le gusta jugar al tenis? En vez de imprimir la variable?
Muchas gracias colega.
😉
 
Muchas gracias! No tengo un código hecho todavía pero si la estructura logica, lo que me limita es colocar una variable del usuario que se encuentra en sesión dentro de un registro.




Pero en tal caso, no se imprimiría A id_user le gusta jugar al tenis? En vez de imprimir la variable?
Muchas gracias colega.
😉

con preg match

obtienes el numero ejemplo:

A ${1} le gusta jugar al tenis?

validas si el ID corresponde a un usuario y traer la informacion del usuario. Obviamente. ponle un sistema de cache para no saturar la base de datos

o la forma mas facil es cuando recibas el mensaje. modificar ${1} Por el nombre del usuario, pero en este caso no se actualizara si el usuario cambia de nombre.
 
con preg match

obtienes el numero ejemplo:

A ${1} le gusta jugar al tenis?

validas si el ID corresponde a un usuario y traer la informacion del usuario. Obviamente. ponle un sistema de cache para no saturar la base de datos

o la forma mas facil es cuando recibas el mensaje. modificar ${1} Por el nombre del usuario, pero en este caso no se actualizara si el usuario cambia de nombre.

Gracias de nuevo colega, te voy a pedir un poco más de ayuda! 🙄

el registro con una variable de ejemplo
Captura de Pantalla 2020-03-22 a la(s) 13.45.53.webp


Y aqui traigo ese registro

Captura de Pantalla 2020-03-22 a la(s) 13.46.24.webp


Como dices que sería mediante preg match? como puedo lograr eso?

Disculpa la ignorancia, gracias!
 

Adjuntos

  • Captura de Pantalla 2020-03-22 a la(s) 13.37.52.webp
    Captura de Pantalla 2020-03-22 a la(s) 13.37.52.webp
    23,1 KB · Visitas: 12
preg_match('|${"(.*)"}|U', $ques, $id); o preg_match('|${(.*)}|U', $ques, $id); no se cual seria la forma correcta no ando en el ordenador.
pero seria algo asi

luego validas que $id exista, que sea un numero, buscas en base de datos y remplazas ahora algo asi:

str_replace('${' . $id . '}', $id->user, $ques);
 
Gracias de nuevo colega, te voy a pedir un poco más de ayuda! 🙄

el registro con una variable de ejemplo
Ver el archivo adjunto 228763

Y aqui traigo ese registro

Ver el archivo adjunto 228765

Como dices que sería mediante preg match? como puedo lograr eso?

Disculpa la ignorancia, gracias!

No puedes meter una sentencia Laravel propia del blade en un registro de base de datos ya que cuando lo muestres lo interpretará como texto o como HTML si usas {!! !!}

Para tu caso, deberás modificar tu variable $ques con un str_replace para que reemplace "${Auth::user()->id}" por el nombre del usuario que está logueado
 
pd: debes guardar el numero no la variable Auth::user()->id.
No puedes meter una sentencia Laravel propia del blade en un registro de base de datos ya que cuando lo muestres lo interpretará como texto o como HTML si usas {!! !!}

Para tu caso, deberás modificar tu variable $ques con un str_replace para que reemplace "${Auth::user()->id}" por el nombre del usuario que está logueado


Listo amigos, lo logré solucionar. Muchas gracias por su tiempo y ayuda.

Solución:

$ques = Questions::where('id',3)->first();
echo str_replace('${name}',Auth::user()->nick, $ques->question);

🙂🙂
 
Listo amigos, lo logré solucionar. Muchas gracias por su tiempo y ayuda.

Solución:

$ques = Questions::where('id',3)->first();
echo str_replace('${name}',Auth::user()->nick, $ques->question);

🙂🙂

si guardas el nombre y yo cambio mi nombre, no me encontrara.
ten eso en cuenta.
 
si guardas el nombre y yo cambio mi nombre, no me encontrara.
ten eso en cuenta.
${name} es dinámico, nunca guardará un nombre solo lo reemplazará por el Auth::user()->nick, si cambias tu nombre pues usa ese en lugar del anterior.

Esa solución estará bien y no debería traerte problemas
 
${name} es dinámico, nunca guardará un nombre solo lo reemplazará por el Auth::user()->nick, si cambias tu nombre pues usa ese en lugar del anterior.

Esa solución estará bien y no debería traerte problemas

si en el mensaje queda:

A drakgons le gusta tu mensaje. y yo cambio mi nombre a dragurimu

intentare buscar A dragurimu le gusta tu mensaje, en vez de drakgons. lo mas eficiente tanto para la base de datos como para la relacion es usar el ID o algo que no se pueda cambiar.
 
si las preguntas son las mismas para todos los usuarios o para el que lo mire, seria poner un tag donde iria el nombre y listo (que seria lo que hizo el usuario)

En la base de datos se guarda

A <nombre> le gusta el tenis?

Y desde laravel le usas asi como expuso el usuario

PHP:
$ques = Questions::where('id',3)->first();
echo str_replace('<nombre>',Auth::user()->nick, $ques->question);

Entonces quedará

A vicram10 le gusta el tenis?
 

Temas similares

Atrás
Arriba