jamierumbelow / codeigniter-base-model

⛔️DEPRECATED CodeIgniter base CRUD model to remove repetition and increase productivity
MIT License
1.05k stars 479 forks source link

Problem with my deleted_by & deleted_at #212

Open prashantnirgun opened 8 years ago

prashantnirgun commented 8 years ago

Hi friends I am new to base model deleted_by & deleted_at is not functioning properly null value is updated can anybody help whats wrong in my code.

class Article_model extends MY_Model{ //should i kept it before OR after ? public $after_delete = array( 'delete_timestamps' ); protected $soft_delete = TRUE; //my column name is deleted_by such case still i have to mentioned or its optional protected $deleted_by_key = 'deleted_by';

protected function delete_timestamps($article) { $article['deleted_at'] = date('Y-m-d H:i:s'); return $article; } }

//Controller class Test extends CI_Controller { $this->load->model('article_model'); $this->article_model->delete(11); }

//error reported A PHP Error was encountered Severity: Warning Message: Cannot use a scalar value as an array Filename: models/article_model.php Line Number: 51

//table structure CREATE TABLE articles ( body text, title varchar(250) DEFAULT NULL, id int(11) NOT NULL AUTO_INCREMENT, created_at datetime NOT NULL, last_updated datetime NOT NULL, deleted_at datetime NOT NULL, deleted tinyint(4) NOT NULL DEFAULT '0', deleted_by int(11) NOT NULL DEFAULT '0', PRIMARY KEY (id), FULLTEXT KEY body (body,title) ) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=latin1

michail1982 commented 8 years ago

@prashantnirgun , check https://github.com/jamierumbelow/codeigniter-base-model/blob/master/core/MY_Model.php#L358

prashantnirgun commented 8 years ago

yeh I do agree with after_delete but then it is giving error Message: Cannot use a scalar value as an array

michail1982 commented 8 years ago

$this->_database->delete($this->_table); and $this->_database->update($this->_table, array( $this->soft_delete_key => TRUE )); return scalar values instate of row_data

you can use $before_delete to add $this->_database->set('deleted_at',date('Y-m-d H:i:s'));

prashantnirgun commented 8 years ago

Thanks Michail somehow the error message gone. Now still its not updating time stamp and deleted_by I believe soft delete feature has in built functionality to handle this column. I can play around and managed to update the values in column. Since this is going to happened for every column than its very serious and has to find out whats going wrong?

Anybody can share tar the working code ?

michail1982 commented 8 years ago

https://gist.github.com/michail1982/fd89c81ed34319b2ae2a this does not work?