gpt4 book ai didi

php - RedBean/Fuse 模型命名约定的任何替代方案?

转载 作者:可可西里 更新时间:2023-11-01 00:35:15 24 4
gpt4 key购买 nike

RedBeanPHP uses class naming convention将模型绑定(bind)到表上。我不能遵守该命名约定,因为我有一个表名不是一成不变的项目。我需要一种方法将 RedBean_SimpleModel 连接到没有命名约定的表名 - 我该怎么做?

最佳答案

好的,我在查看 API documentation 时找到了一个解决方案.我可以设置自己的“模型格式化程序”,这意味着我可以创建一个类,该类负责将表名与类名连接起来。我的 RedBean 设置代码现在如下所示:

# Redbean
require('vendor/redbean/rb.php');

R::setup("mysql:host=".MYSQL_HOST.";dbname=".MYSQL_DATABASE.";",
MYSQL_USERNAME, MYSQL_PASSWORD);

# Set custom model formatter
class CustomRedBeanModelFormatter implements RedBean_IModelFormatter
{
public function formatModel($model)
{
switch($model)
{
case foo\bar\OmniDataManager::TABLE_DATA:
return 'foo\bar\OmniDataModel';
case foo\bar\OmniDataManager::TABLE_GROUP:
return 'foo\bar\OmniDataGroupModel';
default:
return false;
}
}
}
$customRedBeanModelFormatter = new CustomRedBeanModelFormatter();
RedBean_ModelHelper::setModelFormatter($customRedBeanModelFormatter);

这是一个有点丑陋的解决方案。我宁愿能够做这样的事情:

RedBean_ModelHelper::setModelForTable($modelName, $tableName);

出于这个原因,我暂时不会将其标记为正确答案。

关于php - RedBean/Fuse 模型命名约定的任何替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10142168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com