Проблема передачи аргументов функции в codeigniter - PullRequest
0 голосов
/ 05 мая 2011

Я использую платформу CodeIgniter.Я создал библиотеку под названием common_funtions.Эта библиотека позволяет мне вызывать функцию в разных контроллерах.Одна функция, в частности, нуждается в аргументе, но я получаю три ошибки при вызове этой функции:

A PHP Error was encountered
Severity: Warning
Message: Missing argument 1 for Common_functions::time_ago(), called in \...\get_comments.php on line 11 and defined
Filename: libraries/Common_functions.php
Line Number: 20

A PHP Error was encountered
Severity: Notice
Message: Undefined variable: time
Filename: libraries/Common_functions.php
Line Number: 26

A PHP Error was encountered
Severity: Notice
Message: Undefined variable: time
Filename: libraries/Common_functions.php
Line Number: 39

Вот мой код: В библиотеке: common_functions.php

// The following function calculates ‘how long ago’
function time_ago($time)
{       
    $periods = array('second', 'minute', 'hour', 'day');
    $lengths = array('60', '60', '24', '7');
    $tense = 'ago';
    $now = time();
    $time_diff = $now - $time;
    for ($j = 0; $time_diff >= $lengths[$j] && $j < count($lengths)-1; $j++)
    {
        $time_diff /= $lengths[$j];
    }
    $time_diff = round($time_diff);
    if ($time_diff != 1)
    {
        $periods[$j].='s';
    }
    if ($time_diff > 7 && $periods[$j] == 'days')
    {
        $time_ago = date("l dS F, Y", $time);
    } 
    else 
    {
        $time_ago = $time_diff." ".$periods[$j]." ago";
    }
    return $time_ago;
}

В моем контроллере:

$query = $this->db->query(“
    SELECT * 
    FROM post_comments 
    WHERE p_id = ‘$id’ 
    ORDER BY date ASC”);
$comments = $query->result_array();
foreach ($comments as $comment)
{
    $comment['date'] = $this->common_functions->time_ago($comment['date']);
}

Что-то не так с моим кодом?А может это ошибка в моих рамках?Это не первый раз, когда я испытываю это.

1 Ответ

0 голосов
/ 05 мая 2011

Вы загрузили библиотеку с $this->load->library('common_functions');?

Также в этой ситуации кажется, что вам больше подходит использовать модель, а не библиотеку, см .: http://codeigniter.com/user_guide/general/models.html

...