2016-06-29 4 views
0

Мой контроллер, как это:Как вызвать функцию в контроллере из вида в CodeIgniter?

public function index() 
{ 
    $data_login = $this->session->userdata('login'); 
    $id = $data_login['customer_id']; 

    $this->data['notification'] = $this->get_data($id);  

    $this->load->view('notification/list_view', $this->data); 
} 

public function time_elapsed_string($datetime, $full = false) 
{ 
    ... 
} 

Мой взгляд (list_view), как это:

<table class="table table-striped table-advance table-hover"> 
    <tbody> 
    <?php 
     foreach ($notification as $key => $value) 
     { 
    ?> 

     <tr class="unread" data-messageid="1"> 
      <td class="view-message "> 
       <?php 
        echo '<a href='.base_url().'notification/notif/'.$value['notification_id'].'>'.$value['notification_message'].'</a><br>'; 
       ?> 
      </td> 
      <td class="view-message text-right"> <?php echo $this->time_elapsed_string($value['notification_created_date']); ?> </td> 
     </tr> 

    <?php 
     } 
    ?> 
    </tbody> 
</table> 

При выполнении существуют ошибки, как это:

Fatal error: Call to undefined method EX_Loader::time_elapsed_string().....

Seemed un возможность вызова функции time_elapsed_string в контроллере.

Любое решение для решения моей проблемы?

ответ

2

Я считаю, что вы не можете использовать метод контроллера. У вас должна быть вспомогательная функция.

Таким образом, создать файл helper.php затем сделать вашу функцию, как показано ниже:

if (! function_exists('time_elapsed_string')){ 
    function time_elapsed_string($datetime, $full = false){ 
     // do your calculation 
     return 'something'; 
    } 
} 

Затем включите файл helper.php в контроллере, как показано ниже:

$this->load->helper('helper'); 

Теперь вы будете сможете использовать эту функцию «time_elapsed_string» в вашем представлении.

0

Вы не можете позвонить $this функция в поле зрения, вы можете использовать нормальную функцию и вспомогательную функцию.

оптимальное решение - функция использования в контроллере и использование return value in view.