Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 06.11.2013 16:45:57

[L3] Помогите разобраться с тоталом в пагинации

Здравствуйте. Помогите с пониманием кода.

файл: /laravel/database/query.php
класс: class Query
метод: public function paginate($per_page = 20, $columns = array('*'))

строка 770 ( Laravel 3 API )

$total = $this->count(reset($columns));

как оно работает?
куда ведёт

$this->count

?

спасибо.

Не в сети

#2 06.11.2013 17:43:41

Re: [L3] Помогите разобраться с тоталом в пагинации

Это вызов аггрегирующей функции (COUNT). См. самый конец этого скрипта, а конкретно — магический __call():

PHP
    /**
     * Magic Method for handling dynamic functions.
     *
     * This method handles calls to aggregates as well as dynamic where clauses.
     */
    
public function __call($method$parameters)
    {
        if (
strpos($method'where_') === 0)
        {
            return 
$this->dynamic_where($method$parameters$this);
        }

        
// All of the aggregate methods are handled by a single method, so we'll
        // catch them all here and then pass them off to the agregate method
        // instead of creating methods for each one of them.
        
if (in_array($method, array('count''min''max''avg''sum')))
        {
            if (
count($parameters) == 0$parameters[0] = '*';

            return 
$this->aggregate(strtoupper($method), (array) $parameters[0]);
        }

        throw new \
Exception("Method [$method] is not defined on the Query class.");
    }

Не в сети

#3 06.11.2013 21:46:55

Re: [L3] Помогите разобраться с тоталом в пагинации

спасибо!

Не в сети

Подвал раздела