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

xtr*_*nge 3 cakephp model

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

我已经决定我宁愿对此进行硬编码,并且能够在名称和描述上使用__()方法.

如何向模型提供数据以使其不使用数据库?有没有更好的方法来解决这个问题?

谢谢.

bur*_*zum 5

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

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

如何在CakePHP上使用没有数据库的模型并进行关联?

不要把标题弄错,首先阅读,答案也确实解释了这里的解决方案.

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

如果你不使用数据库表并且条目有限,那么使用常量总是好的,因为你不能在不导致错误的情况下做错误而且UserLevel :: USER比某个随机的'user'字符串更清晰这可能意味着什么.

class UserLevel extends AppModel {

    public $useTable = false;

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

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

  • @burzum - 我理解你的意见,但我恭敬地不同意.硬编码使其更具防篡改性,允许我使用翻译功能,并节省不必要的数据库调用.:) (2认同)