如何在CakePHP上使用没有数据库且具有关联的模型?
我的一个模型中有一个如何在CakePHP上使用没有数据库且具有关联的模型?,cakephp,Cakephp,我的一个模型中有一个country\u id字段,与其创建一个countries表,其中包含一个不变的国家列表,不如用什么方法来实现这一点 我正在考虑使用一个没有数据库表的模型,但我不知道如何实现它 请帮忙。提前谢谢 我建议使用社区维护的CakePHP提供的ArraySource: CakePHP 1.3.x-请参阅 CakePHP 2.x-请参阅 下载整个插件并将内容解压缩到app/plugins/datasources 在app/config/database.php中定义到数据源的连接
country\u id
字段,与其创建一个countries
表,其中包含一个不变的国家列表,不如用什么方法来实现这一点
我正在考虑使用一个没有数据库表的模型,但我不知道如何实现它
请帮忙。提前谢谢 我建议使用社区维护的CakePHP提供的
ArraySource
:
- CakePHP 1.3.x-请参阅
- CakePHP 2.x-请参阅
app/plugins/datasources
在app/config/database.php
中定义到数据源的连接:
public $array = array('datasource' => 'Datasources.array');
这将允许您通过在模型中定义记录来模拟表:
class Country extends AppModel {
public $useDbConfig = 'array';
public $records = array(
array('id' => 1, 'name' => 'Test record')
);
}
作为替代方案,如果没有附加到国家的其他数据,基本上,除了它是哪个国家的id之外,您可能可以将其保存在同一个模型中,而无需关联。大致如下:
class MyModel extends AppModel {
public static $countries = array(
'Africa', 'America', ..., 'Zululand'
);
public $validate = array(
'country' => array(
'rule' => array('inList', self::$countries),
...
)
)
}
您完全可以使用无表语法:
class ModelWithoutTable extends AppModel
{
var $useTable = false;
}
要使此国家/地区模型无表化,您需要模拟国家/地区数据的数据源(即XML、YAML、PHP数组等)
希望这有帮助 除了存储库之外,唯一的其他文档位于docblocks中,用于几个数据源(|)。要查找每个数据源的配置选项,请查找
\u baseConfig
或“config”的实例。在代码中添加更多文档将是一个明显的改进。绝对是一个不错的方法。我还不知道那件事。我去看看。直到现在我都是这样做的:我从来没有去过“非洲”这个国家谢谢工作很有魅力。:)