Как и у большинства фреймворков, у kohana есть модуль для работы с базой данных на основе объектов – ORM. Полезность и удобство этого модуля сейчас никто не ставит под сомнение. Многие задачи программирования решаются с помощью ORM. ORM это не только удобство, но и универсальность кода, другими словами: любому программисту использующему ORM будет достаточно просто понять код другого разработчика.

Основные методы и приемы использования ORM.

  • Получение данных из таблицы
    //получаем все записи из таблицы "users".
    $users = ORM::factory('user')
    ->find_all(); 
    
    //получаем все записи из таблицы "users"
    //с условием-фильтром по слову "victor" в поле "name".
    $users = ORM::factory('user')
    ->where('name', 'LIKE', "%victor%")->find_all();
    
    //получаем одну запись со значением поля "name"="victor".
    $user = ORM::factory('user')
    ->where('name', '=', "victor")->find();
    еще вариант:
    $user = ORM::factory('user', $user_id); 
    что соответствует такому варианту синтаксиса
    $user = ORM::factory('user')->where('id', '=', $user_id)->find();

    Основной список методов для выборки элементов:

    • where($column, $op, $value) – условие отбора элементов
    • and_where($column, $op, $value) – дополнительное “И” условие отбора элементов
    • or_where($column, $op, $value) – дополнительное “ИЛИ” условие отбора элементов
    • order_by($column, $direction = NULL) – порядок сортировки элементов
    • limit($number) – количество отбираемых элементов
    • group_by($columns) – группировка элементов по полю
  • Проверка отобранных данных
    • Для единичной записи:
      $user = ORM::factory('user')->where('name', '=', "victor")
      ->find();
      
      if($user->loaded())
      {
      //Здесь пишем код, который выполняется, если запись найдена
      }
      else
      {
      //Здесь пишем код если запись не найдена
      }
    • Для работы с несколькими записями:
      $users = ORM::factory('user')->where('name', 'LIKE', "%victor%")
      ->find_all();
      
      if($users->count()>0)
      {
      //Здесь пишем код, который выполняется, если записи найдены
      }
      else
      {
      //Здесь пишем код если записи не найдены
      }
  • Сохранение/создание данных в таблице
    • Сохраняем данные в имеющуюся запись в таблице базы данных:
      $user = ORM::factory('user', $user_id);
      $user->name = 'alex';
      $user->phone = '111-11-11';
      $user->save();

      (если запись с id=$user_id не будет обнаружена в таблице, то ORM создаст новую запись с указанными данными)

    • Создаем новую запись в таблице базы данных:
      $user = ORM::factory('user');
      $user->name = 'max';
      $user->phone = '222-22-22';
      $user->save();
  • Удаление данных из таблицы
    $user = ORM::factory('user', $user_id);
    $user->delete();

В ORM от kohana есть возможность работы с данными через связи: “Один к одному”, “Один ко многим”, “Многие ко многим” и “Связь через”. О том как их использовать постараюсь описать в следующем посте.

Leave a reply

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

required