Ситуация
Учтите, что у меня есть следующая структура классов:
// a user model
class UserModel extends BaseModel {
protected static $table = 'Users';
}
// a controller for the user model
class UserModelController extends BaseModelController {
protected static $model = 'UserModel';
}
// a base model
class BaseModel {
protected static $table = '';
}
// a base model controller
class BaseModelController {
protected static $model = '';
}
Что я хочу
Что я хочу сделать сейчас, так это иметь базовую функциональностькак базовый контроллер, так и базовая модель, например добавление функции delete()
в BaseModelController
:
public static function delete($id) {
$stmt = Database::prepare('DELETE FROM `' . $table . '` WHERE `id`=?');
$res = $stmt->execute(array($id));
}
Проблема
Как получить имя таблицы?Теоретически я ищу что-то вроде следующего:
$table = static::$model::$table;
Но, к сожалению, это не работает. Возможно ли это вообще?