Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

CakePhp pasar valores a layout para enviar en Email

Estas en el tema de CakePhp pasar valores a layout para enviar en Email en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola gente, estoy intentado "reformar" el código de una aplicación que tengo en CakePhp 1.2 hecha ya hace un tiempecillo y poco a poco lo ...
  #1 (permalink)  
Antiguo 20/12/2012, 14:20
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
CakePhp pasar valores a layout para enviar en Email

Hola gente, estoy intentado "reformar" el código de una aplicación que tengo en CakePhp 1.2 hecha ya hace un tiempecillo y poco a poco lo estoy logrando (aunque llevo más de 2 días intentándolo); pero no encuentro la manera de pasar valores al template que se envía como mail.

function invitar() {

//Creamos la tupla en la tabla invitados , con el nuevo invitado
//$this->Invitado->create();

if ($this->Invitado->save($this->data)) {
//Enviamos el mail para que active su cuenta

$email = new CakeEmail();

$email->template('invitar'); //Esto si funciona

//Pasamos las variables al layout que se envía como mail
//$this->set('amigo', $this->Auth->user($username));
$this->set('email_invitado', $this->data['Invitado']['email']);
$this->set('msg', $this->data['Invitado']['msg']);


$email->emailFormat('both');
$email->message = $this->data['Invitado']['msg'];
$email->from(array('[email protected]' => 'masquebits'));
$email->to($this->data['Invitado']['email']);
$email->subject('Has sido invitad@ a jugar');
$email->send();
}

$this->redirect($this->referer());
}

He puesto en negrita el código tal y como lo tengo ahora para pasar los valore al template, pero desde luego que no funciona (en CakePhp 1.2 así me funcionaba), ¿alguien me puede decir como se haría en CakePhp 2.0 ?. Gracias de antemano.

Un saludo y gracias de antemano (: .
__________________
Videotutoriales de Drupal
  #2 (permalink)  
Antiguo 24/12/2012, 21:23
 
Fecha de Ingreso: febrero-2012
Mensajes: 37
Antigüedad: 12 años, 2 meses
Puntos: 5
Respuesta: CakePhp pasar valores a layout para enviar en Email

Para poder ver variables en la vista podrías intentar con algo como:
Código PHP:
function _enviarCorreo($arrDatos){        
        
$email = new CakeEmail();
        
$email->config('default');        
        if(
$email->from(array(CORREO_FROM => NOMBRE))
        ->
to(CORREO_TO)
        ->
subject(SUBJECT)
        ->
template('template_elegido')
        ->
emailFormat('html')
        ->
viewVars(array('arrDatos' => $arrDatos))
        ->
send()){
            return 
true;
        }else{
            return 
false;
        }
// _enviarCorreo 
La linea
Código PHP:
->viewVars(array('arrDatos' => $arrDatos)) 
y ahora tienes disponible $arrDatos para leer tus variables, si es eso espero te sirva.
  #3 (permalink)  
Antiguo 27/12/2012, 05:35
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: CakePhp pasar valores a layout para enviar en Email

Cita:
Iniciado por arhego Ver Mensaje
Para poder ver variables en la vista podrías intentar con algo como:
Código PHP:
function _enviarCorreo($arrDatos){        
        
$email = new CakeEmail();
        
$email->config('default');        
        if(
$email->from(array(CORREO_FROM => NOMBRE))
        ->
to(CORREO_TO)
        ->
subject(SUBJECT)
        ->
template('template_elegido')
        ->
emailFormat('html')
        ->
viewVars(array('arrDatos' => $arrDatos))
        ->
send()){
            return 
true;
        }else{
            return 
false;
        }
// _enviarCorreo 
Gracias compañer@, eso funciona perfecto; anteriormente había buscado en la API nueva de Cake Php 2.1 pero no lo había encontrado, ahora que se el nombre del método viewVars me ha sido más fácil encontrarlo http://api21.cakephp.org/search/viewVars .

Un saludo y felices fiestas (:
__________________
Videotutoriales de Drupal

Etiquetas: cakephp
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:02.