2015-04-18 8 views
5

kann ich Daten vom Haken zur Ansicht übergeben, wenn es möglich ist, erklären Sie bitte.Daten vom Haken zur Ansicht in Codeigniter übergeben

beispiels

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

i anzeigen möchten einige Array-Daten varify_project.php (hook-Datei) senden.

+0

Sie meinen Sie einige Array hinzufügen möchten Daten zu Ihrer Ansicht? wie '$ this-> load-> view ('view', $ data);' aber '$ data' ist dein Array in hooks? –

+0

Absolut richtig ... –

Antwort

1

ich so

application/Kern/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

Erwägen Sie, Ihre Antwort zu bearbeiten, um eine Erklärung hinzuzufügen, warum und wie Ihr Code das Problem löst. – Mephy

+1

Ich stimme @Mephy zu, und das gleiche Feedback wurde auf Ihrem letzten Beitrag angeboten. Da zu dieser Frage keine Änderungen vorgenommen wurden, entschuldige ich mich mit Entschuldigungen. Wenn Sie bereit wären, ein oder zwei Sätze hinzuzufügen, werde ich gerne das DV entfernen. – halfer

+0

Ich verstehe wirklich nicht, was zu diesen Strings einfachen Codes hinzugefügt werden könnte. es scheint, ist klar für diejenigen, die mit Codeigniters Hooks arbeiten – splash58

3

Wenn Sie sich die Zeit, um zusätzliche Daten hinzufügen wollen, sind der Ansicht des Ladens, könnte man den Kern Loader Klasse wie folgt erweitern:

application/Kern/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)); 
    } 
} 

Die $vars['hello'] würde dann eine Variable erstellen, die Sie in einer beliebigen Ansicht mit der Bezeichnung verwenden können. Sie könnte wiederholt werden, um eine beliebige Anzahl von Variablen zu erstellen, vorausgesetzt, dass sie auf jeder Seite Ihrer Anwendung verwendet werden sollen.

+0

Hi Ben thnx wirklich .... guter Versuch von dir ... ... aber splash58 richtig den Code erklären. –

+0

@PavnishYadav Ich sehe keine Erklärung bei dieser Antwort, nur nur Codes.Wenn Sie denken, diese Antwort ist auch in Ordnung, warum nicht stimmen Sie es auch? –

+0

ok .. Jetzt stimme ich diese Antwort ab. –

Verwandte Themen