2015-04-18 17 views
5

posso passare i dati dal gancio alla vista, se è possibile, per favore, spiega.passaggio di dati dal gancio per la visualizzazione in codeigniter

ad esempio

$hook['post_controller_constructor'][] = array(
    'class' => 'Varify_user', 
    'function' => 'user_project', 
    'filename' => 'varify_project.php', 
    'filepath' => 'hooks', 
    'params' => array('') 
); 

voglio inviare alcune varify_project.php dati di matrice (file gancio) per visualizzare.

+0

vuoi dire che si desidera aggiungere alcune serie dati alla tua vista? come '$ this-> load-> view ('view', $ data);' ma '$ data' è il tuo array in hooks? –

+0

Assolutamente vero ... –

risposta

1

lo faccio

application/core/MY_Loader.php

class MY_Loader extends CI_Loader { 
    static $add_data = array(); 
    public function view($view, $vars = array(), $return = FALSE) 
    { 
     self::$add_data = array_merge($vars, self::$add_data); 
     return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array(self::$add_data), '_ci_return' => $return)); 
    } 
} 

application/config/hooks.php

$hook['post_controller_constructor'] = function() { 
    MY_Loader::$add_data['hello'] = "Hello World"; 
} ; 
+1

Valuta la possibilità di modificare la risposta per aggiungere una spiegazione al motivo e al modo in cui il tuo codice risolve il problema. – Mephy

+1

Sono d'accordo con @Mephy e lo stesso feedback è stato offerto sul tuo contributo più recente. Poiché non è stata apportata alcuna modifica a questa domanda, sto procedendo a downvoting, con scuse. Se vorresti aggiungere una frase o due, rimuoverò volentieri il DV. – halfer

+0

Sono davvero non capisco, cosa potrebbe essere aggiunto a queste alcune stringhe di codice semplice. sembra, è chiaro per quelli che lavorano con i ganci di Codeigniter – splash58

3

Se si vogliono aggiungere ulteriori dati al momento del carico della vista, è possibile estendere la classe loader nucleo simili:

applicazione/core/MY_Loader.php

<?php 
class MY_Loader extends CI_Loader { 
    public function view($view, $vars = array(), $return = FALSE) 
    { 
     $vars['hello'] = "Hello World"; 
     return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return)); 
    } 
} 

lo $vars['hello'] creerebbe quindi una variabile che è possibile utilizzare in qualsiasi vista denominata $hello e potrebbe essere ripetuta per creare un numero qualsiasi di variabili purché si desideri che vengano utilizzate in ogni pagina dell'applicazione.

+0

Ciao Ben thnx davvero .... buona prova da parte tua ... ... ma splash58 proprio spiega il codice. –

+0

@PavnishYadav Non vedo alcuna spiegazione a quella risposta, solo solo codici. Se pensi che questa risposta sia OK, perché non votare anche tu? –

+0

ok .. Ora voto questa risposta. –

Problemi correlati