I am giving Kohana a try and I was trying to use the ORM + PDO + MySQL database, and I don’t seem to find an answer in google or SO.
I have both the database and ORM modules enabled, and I have set PDO as default in modules/database/config/database.php
I have a simple controller, and a simple model:
MODEL application/classes/model/blogpost.php:
<?php
class Model_Blogpost extends ORM {
protected $_table_name = 'blog_post';
}
CONTROLLER: in application/classes/controller/welcome.php
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Welcome extends Controller {
public function action_index() {
$Blog_Post = ORM::factory('blogpost'); // ==> ERROR HERE
$Blog_Post->name = 'test1';
$Blog_Post->description = 'this is a quick test';
$Blog_Post->content = 'The content goes here....';
$Blog_Post->save();
$id = $Blog_Post->id;
$Blog_Post = ORM::factory('blogpost', $id);
$view->Blog_Post = $Blog_Post;
$this->response->body($view);
}
} // End Welcome
I get the following error when I try to run the test:
Kohana_Exception [ 0 ]: Database method list_columns is not supported by Kohana_Database_PDO
I have done a search in google and Stack Overflow, and my impression is that ORM may not work with PDO, is this correct? or am I missing something?
Thank you.
list_columnsis used for ORM to get all the columns in a table when they are not specified. To get around this, you can specify the table columns in the_table_columnsprotected property:This will ensure that
list_columnsis not called. The downside is that you will have to keep track of every change to the table you make. The upside is that an extraSHOW FULL COLUMNSquery is not called, meaning a small performance boost.Another way is to override the
list_columnsmethod and provide your own means of listing columns with it.