I didn't find any solution apart from editing the native datamapper library. I modified the function _get_by() in datamapper class in /application/libraries/datamapper.php as below. i added var $table = 'user';
var $id = 'user_id';
in my model and added if($field=='id'){
$field = $this->id;
}
in datamappper library.
/**
* Get By
*
* Gets objects by specified field name and value.
*
* @ignore
* @param string $field Field to look at.
* @param array $value Arguments to this method.
* @return DataMapper Returns self for method chaining.
*/
private function _get_by($field, $value = array())
{
//Custom Change
if($field=='id'){
$field = $this->id;
}
if (isset($value[0]))
{
$this->where($field, $value[0]);
}
return $this->get();
}