2015-04-18 16 views
5

tôi có thể truyền dữ liệu từ móc để xem không, nếu có thể, vui lòng giải thích.truyền dữ liệu từ móc để xem trong mã vạch

ví dụ

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

tôi muốn gửi một số varify_project.php dữ liệu mảng (file móc) để xem.

+0

bạn có nghĩa là bạn muốn thêm một số mảng dữ liệu cho chế độ xem của bạn? như '$ this-> load-> view ('view', $ data);' nhưng '$ data' là mảng của bạn trong hook? –

+0

Hoàn toàn đúng ... –

Trả lời

1

tôi làm như vậy/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)); 
    } 
} 

ứng dụng

application/core/config/hooks.php

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

Cân nhắc chỉnh sửa câu trả lời của bạn để thêm giải thích cho lý do và cách mã của bạn giải quyết được sự cố. – Mephy

+1

Tôi đồng ý với @Mephy và phản hồi tương tự đã được cung cấp cho khoản đóng góp gần đây nhất của bạn. Vì không có chỉnh sửa nào được đưa ra về câu hỏi này, tôi đang downvoting, với lời xin lỗi. Nếu bạn sẵn lòng thêm một hoặc hai câu, tôi sẽ sẵn sàng loại bỏ DV. – halfer

+0

Tôi thực sự không hiểu, những gì có thể được thêm vào một số chuỗi mã đơn giản. nó, có vẻ như, là rõ ràng cho những người, những người làm việc với móc của Codeigniter – splash58

3

Nếu bạn đang muốn thêm dữ liệu bổ sung tại thời điểm tải quan điểm, bạn có thể mở rộng các lớp loader lõi như thế này:

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

sau đó, $vars['hello'] sẽ tạo biến mà bạn có thể sử dụng trong bất kỳ chế độ xem nào có tên là $hello và có thể được lặp lại để tạo bất kỳ số lượng biến nào mà bạn muốn chúng được sử dụng trên mọi trang trong ứng dụng của bạn.

+0

Hi Ben thnx thực sự .... tốt thử bạn ... ... Nhưng splash58 thích hợp giải thích mã. –

+0

@PavnishYadav Tôi không thấy bất kỳ lời giải thích nào ở câu trả lời đó, chỉ là các mã. Nếu bạn nghĩ câu trả lời này cũng OK tại sao không bỏ phiếu thì sao? –

+0

ok .. Bây giờ tôi bỏ phiếu cho câu trả lời này. –

Các vấn đề liên quan