CakePHP:如何为模型提供硬编码数据,而不是提供表?

CakePHP:如何为模型提供硬编码数据,而不是提供表?,cakephp,model,Cakephp,Model,我目前有一个名为UserLevels的模型,它定义了一些用户级别(用户、高级用户、管理员等)和它们的一些属性(数字、描述、颜色等) 我已经决定我更愿意硬编码这个,并且能够在名称和描述上使用_;()方法 如何向模型提供数据,使其不使用数据库?有没有更好的办法 谢谢。更新:模型中没有数据库的完整多字段记录 在作者明确了他的目标后,这应该是解决方案: 不要弄错标题,先读一读,答案也准确地描述了这里的解决方案 单字段、类枚举数据的解决方案: 如果您不使用DB表,并且条目受到限制,那么使用常量总是很好的

我目前有一个名为UserLevels的模型,它定义了一些用户级别(用户、高级用户、管理员等)和它们的一些属性(数字、描述、颜色等)

我已经决定我更愿意硬编码这个,并且能够在名称和描述上使用_;()方法

如何向模型提供数据,使其不使用数据库?有没有更好的办法


谢谢。

更新:模型中没有数据库的完整多字段记录

在作者明确了他的目标后,这应该是解决方案:

不要弄错标题,先读一读,答案也准确地描述了这里的解决方案

单字段、类枚举数据的解决方案:

如果您不使用DB表,并且条目受到限制,那么使用常量总是很好的,因为您不能在某个地方进行打字而不导致错误,而且UserLevel::USER比某个可能有任何含义的随机“USER”字符串要清晰得多

class UserLevel extends AppModel {

    public $useTable = false;

    const ADMIN = 'admin';
    const USER = 'user';
    /* ... */

    public function getUserLevels() {
        return [
            UserLevel::ADMIN => __('Admin'),
            /* ... */
        ];
    }
}

我感谢你的反馈。不过,这些级别不仅仅是名称(我应该更清楚……这就是我说的“和一些属性”的意思)。它们有数值、描述、颜色等。所以我看的是每个级别的数据数组。你可以使用静态属性而不是常量。你没有得到常数提供的防止覆盖的保护,但是你得到了数据类型的灵活性。那么,在这种情况下,如果他们拥有所有这些东西,为什么不使用数据库表呢。“我真的没有理由不这样做,”斯科特威尔说,“那就行了。”。然而,我会失去蛋糕与联想的魔力。有没有办法向未连接到db的模型提供数据?@burzum-我理解你的观点,但我不同意。硬编码使其更加防篡改,允许我使用翻译功能,并节省对数据库的不必要调用。:)