我有以下代码。我试图让它更简单更短。我创建了$data1
数组并添加了相关数据array_merge
并将其保存到我的模型中。但请注意,$data1
里面$exists
有相同的代码。是否可以在$data1
不重写相同代码的情况下将数组传递给 MyModel 的 find 方法?
因为我需要在这些片段中创建多行,所以我使用了MyModel->create
. 在这段代码中,我粘贴了两个块,但最初我有 6 个这样的块。所以缩短对我来说很重要。
总结:我需要缩短这个代码片段,我不想在每个块中重写相同的数据。
$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);
}
}