Последние записи

Первая 1 2 3 4 5 6 7 8 Последняя

Установка модуля Pagination Kohana 3.2

Дата: 02-05-2012

1. Качаем модуль по ссылке на GitHub https://github.com/kloopko/kohana-pagination

2. Устанавливаем в папку c модулями /modules/pagination/

3. Копируем файл с конфигом config.php в основную папку конфигов нашего приложения /application/config

У меня он выглядит так:

'default' => array(
		'current_page'      => array('source' => 'route', 'key' => 'page'), // source: "query_string" or "route"
		'total_items'       => 0,
		'items_per_page'    => 5,
		'view'              => 'pagination/basic',
		'auto_hide'         => FALSE,
		'first_page_in_url' => FALSE,

4. Неоходимо в bootsrap.php подключить модуль:

Добавить

Kohana::modules(array(
	'auth'       => MODPATH.'auth',       // Basic authentication
	// 'cache'      => MODPATH.'cache',      // Caching with multiple backends
	// 'codebench'  => MODPATH.'codebench',  // Benchmarking tool
	'database'   => MODPATH.'database',   // Database access
	// 'image'      => MODPATH.'image',      // Image manipulation
	'orm'        => MODPATH.'orm',        // Object Relationship Mapping
	// 'unittest'   => MODPATH.'unittest',   // Unit testing
	// 'userguide'  => MODPATH.'userguide',  // User guide and API documentation
        'captcha'    => MODPATH.'captcha', //Captcha
        'pagination' => MODPATH.'pagination', // Pagination
	));

4. Переписываем роут где нужно сделать постраничную навигацию:

Route::set('default', '((/(/page)(/)))', array('page'=>'[0-9]+'))
	->defaults(array(
		'controller' => 'index',
		'action'     => 'index',
	));

5. В экшине контроллера где выводится постраничная навигация прописываем, что-то вроде:

    public function action_index() {
        
        // echo 'Page -> ' . $this->request->param('page');
        
        $count = ORM::factory('note')->count_all();
        
        $pagination = Pagination::factory(array(
            'total_items' => $count,
        ))
        ->route_params(array(
        'controller' => Request::current()->controller(),
        'action' => Request::current()->action(),
));
        
        $posts = ORM::factory('note')->order_by('date', 'DESC')
                ->limit($pagination->items_per_page)
                ->offset($pagination->offset)
                ->find_all();
        
        $this->template->content = View::factory('front/v_posts', array(
            'posts' => $posts,
            'pagination' => $pagination,));
    }

6. В вид переданы посты и html постраничной навигации. That's all!


Категория: PHP

На "злобу" дня

Дата: 01-05-2012

забыл?

квасишь?


Категория: Other

Демотиватор Diablo 3

Дата: 19-04-2012

diablo 3


Категория: Other

ORM Kohana examples

Дата: 27-02-2012

Небольшой конспект по ORM.

ORM (англ. Object-relational mapping, рус. Объектно-реляционное отображение) — технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных». http://ru.wikipedia.org/wiki/ORM

Основное достоинство ORM:
ORM избавляет программиста от написания большого количества кода, часто однообразного и подверженного ошибкам, тем самым значительно повышая скорость разработки. Кроме того, большинство современных реализаций ORM позволяют программисту при необходимости самому жёстко задать код SQL-запросов, который будет использоваться при тех или иных действиях (сохранение в базу данных, загрузка, поиск и т. д.) с постоянным объектом.

Использование ORM:

1. Раскомментить в bootstrap.php:

Kohana::modules(array(
	'auth'       => MODPATH.'auth',       // Basic authentication
	// 'cache'      => MODPATH.'cache',      // Caching with multiple backends
	// 'codebench'  => MODPATH.'codebench',  // Benchmarking tool
	'database'   => MODPATH.'database',   // Database access
	// 'image'      => MODPATH.'image',      // Image manipulation
	'orm'        => MODPATH.'orm',        // Object Relationship Mapping
	// 'unittest'   => MODPATH.'unittest',   // Unit testing
	// 'userguide'  => MODPATH.'userguide',  // User guide and API documentation
	));

2. Правила!

Например в БД есть таблица 'peoples' - таблица должна быть названа во множественном числе.
А модель должна быть в единственном, т.е. /clasess/model/people.php

Внутри код подобный этому:

defined('SYSPATH') or die('No direct script access.');

class Model_People extends ORM {
    
    protected $_table_name = 'peoples';
    
    protected $_primary_key = 'people_id';
    
}

Если указывать имя таблицы явно

protected $_table_name = 'peoples';

То имя таблицы необязательно должно совпадать с именем модели.

Таблица должна обязательно иметь primary_key - id, если он отличается от id - то нужно указать его явно protected $_primary_key = 'people_id';  

3. Работа с данными в ORM

Допустим у нас есть в таблице поля: `peоple_id`, `name`, `age`.

Добавление данных:

$people = ORM::factory('people');
$people->name = 'Batman';
$people->age = '32';
$people->save(); // Сохранение записи

Удаление данных:

Например, необходимо удалить данные с people_id = 3

$d = ORM::factory('people', 3);
if ($d->loaded()) // Проверка на существование записи в таблице с id равным 3
{
    $d->delete(); // Удаление записи
}


Update данных:

$people = ORM::factory('people', $id); // где $id - id записи, которую мы хотим редактировать
$people->name = 'Batman';
$people->age = '35';
$people->save(); // Сохранение записи

/* Равнозначно запросу:
UPDATE `people` 
SET  `name`='Batman', `age`=35 
WHERE `people_id`=$id 
*/ 

Работа со связанными данными:
Связи: 
Один-к-одному (has_one) 
Один-ко-многим (has_many)
Принадлежность (belongs_to)
Многие-ко-многим (has_many "through")

Для того, чтобы указать связи связи в модели нужно указать их. Пример:

Class Model_Name extends ORM {
protected $_belongs_to /* указываем тип связи */ = array(
       '[alias name]'   => array(
       'model'            => '[model_name]',
       'foreign_key'   => '[column_name]',
        )
    );
 
}

Категория: Kohana

Ссылки по Kohana для начинающих

Дата: 23-02-2012

Kohana

Официальный сайт  Kohana

Форум официального сайта

Сайт Актуба

http://kohanaframework.su/

http://brotkin.ru

http://www.sdelaysite.com/tag/php — Курс Морковина по Kohana

http://ruslan.cc/ — Блог разработчика с практическими примерами 

 


Категория: Kohana

Первая 1 2 3 4 5 6 7 8 Последняя