2011-06-06 21 views
6

Según here Tengo el siguiente controlador:datos CodeIgniter pasando de controlador para ver

class User extends CI_Controller { 
    public function Login() 
    { 
     //$data->RedirectUrl = $this->input->get_post('ReturnTo'); 
     $data = array(
       'title' => 'My Title', 
       'heading' => 'My Heading', 
       'message' => 'My Message' 
     ); 
     $this->load->view('User_Login', $data); 
    } 

    //More... 
} 

y en mi archivo de vista User_Login.php hago esto:

<?php print_r($data);?> 

que se traduce en:

A PHP Error was encountered 
Severity: Notice 
Message: Undefined variable: data 
Filename: views/User_Login.php 
Line Number: 1 

¿Necesito cargar módulos/ayudantes específicos para obtener la variable de datos $ populat ed? Si yo print_r($this), puedo ver muchas cosas pero ninguno de mis datos excepto en cachés

Editar: Para aclarar, sé que llamar a la variable igual en el controlador y ver no la "compartirá" - es fuera del alcance, pero en el ejemplo que he vinculado, parece implicar que se crea una variable $data en el alcance de la vista. Simplemente utilicé el mismo nombre en el controlador

+1

que había nota que lo Oks como usted realmente usaron sus datos de prueba de la guía del usuario. Un poco más abajo en la página de visualización verá una sección llamada "Agregar datos dinámicos a la vista" que muestra cómo trabajar con lo que pasa. Consulte: http://codeigniter.com/user_guide/general/views.html – mikeds

Respuesta

9

Ah, las claves de la matriz $data se convierten en variables: prueba var_dump($title); por ejemplo.

EDITAR: esto se hace usando extract.

+0

Maldita sea - Siento que debería haber visto eso. ¡Gracias! – Basic

+0

he leído una guía detallada sobre cómo pasar el valor del controlador para ver en codigniter http://www.cloudways.com/blog/how-to-pass-data-in-codeigniter/ –

6

debe hacerlo como:

echo $title ; 
echo $heading; 
echo $message; 
4

O se puede usar como matriz. En Controlador:

... 
$this->load->view('User_Login', array('data' => $data)); 
... 

En Vista:

<?php print_r($data);?> 

le mostrará el Array ([title] => Mi título [rúbrica] => Mi Título [mensaje] => Mi Mensaje)

+0

Esto es exactamente lo que estaba buscando . ¡Gracias! – hellojebus

1

se puede pasar una variable en la url para

function regresion($value) { 

    $data['value'] = $value; 
    $this -> load -> view('cms/template', $data); 
} 

en la vista

<?php print_r($value);?> 
0

No puede imprimir la variable $ data ya que es una matriz asociativa .... puede imprimir cada elemento de la matriz asociativa ..... considere el siguiente ejemplo.

No hacer de la siguiente manera:

echo $data; 

haga lo siguiente:

echo $title; 
echo $heading;  
echo $message; 
0

Se puede usar esta forma también

$data['data]=array('title'=>'value'); 
 
    $this->load->view('view.php',$data);

Cuestiones relacionadas