In general, never use "new" on Fuel classes, always use forge(). Sometimes "new" works, but often is has side-effects you really don't want.
It's going to be complex to do this dynamically. ORM has been designed with a one-to-one mapping between a Model and a table, which is why it's defined static. If you change the static table name, you will change if will all already existing instances of that Model too, which could lead to severe problems.
Second issue you have is that table names are cached. Everything in ORM uses the table() method to retrieve the table name linked to a Model class from cache, it will not use the $_table_name property. So changing this property at runtime has no effect at all.
The best option is probably to make an $_overloaded_table_name property, and have table() check if this is defined, and if so, return that value instead of the value from cache.
Thank you. I understand. I'll try make an $_overloaded_table_name property property. I think... --------------------- <Model> --------------------- class Model_Schedule extends \Orm\Model_Soft {
protected static $_overloaded_table_name = '';
public static function set_table($table) { static::$_overloaded_table_name = $table; }