有没有办法根据数据库值更改数据库值? 例如,在我的数据库中,我希望将值0和1替换为非活动,活动。
我可以在控制器或视图中执行此操作,但有没有办法在模型中执行此操作,因此我在使用时获取所有数据,例如$ this-&gt; Model-&gt; find(“all”)?< / p>
答案 0 :(得分:0)
您可以使用after find方法
public function afterFind($results, $primary = false) {
foreach ($results as &$result) {
$result[$this->alias]['active'] = ($result[$this->alias]['active'] == 0) ? 'inactive' : 'active';
}
return $results;
}
答案 1 :(得分:0)
正如Martin Bean在评论中所说,帮助者将是适当的地方。我怀疑你总是想要将find的结果转换为字符串。布尔值通常也用在复选框或单选按钮中,因此当您写入数据库时,您必须将其转换回来。
public function boolToString($value) {
if ($value == 1) {
return __('Yes');
}
return __('No');
}
然后只需:
echo $this->MyHelper->boolToString($record['Model']['field']);
请注意,辅助方法还将确保字符串已翻译。