【发布时间】:2013-06-17 19:39:31
【问题描述】:
我有以下代码。我试图让它更简单更短。我创建了$data1 数组并使用array_merge 添加了相关数据并将其保存到我的模型中。但请注意 $data1 和 $exists 内部有相同的代码。是否可以在不重写相同代码的情况下将$data1 数组传递给 MyModel 的 find 方法?
因为我需要在这些 sn-p 中创建多行,所以我使用了MyModel->create。在这段代码中,我粘贴了两个块,但最初我有 6 个这样的块。所以缩短对我来说很重要。
总结如下: 我需要缩短这段代码sn-p,我不想在每个块中重写相同的数据。
$usersNew=array("mike", "john");
$usersLost=array("anna", "maria");
$data1 = array('userid' => $userid,
'date' => date('Y-m-d')
);
foreach ($usersNew as $f) {
$data2 = array_merge($data1, array("users_new" => $f));
$exists=$this->MyModel->find('first',
array('conditions' => array(
'MyModel.userid' => $userid,
'MyModel.date' => date('Y-m-d'),
'MyModel.users_new' => $f
) ));
if ($exists == FALSE) {
$this->MyModel->create();
$this->MyModel->save($data2);
}
}
foreach ($usersLost as $f) {
$data2 = array_merge($data1, array("users_lost" => $f));
$exists=$this->MyModel->find('first',
array('conditions' => array(
'MyModel.userid' => $userid,
'MyModel.date' => date('Y-m-d'),
'MyModel.users_lost' => $f
) ));
if ($exists == FALSE) {
$this->MyModel->create();
$this->MyModel->save($data2);
}
}
【问题讨论】:
标签: php cakephp cakephp-2.3