Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте. Помогите с пониманием кода.
файл: /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
?
спасибо.
Не в сети
Это вызов аггрегирующей функции (COUNT). См. самый конец этого скрипта, а конкретно — магический __call():
/**
* 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.");
}
Не в сети
спасибо!
Не в сети
Страницы 1