У меня есть следующий код. Я пытаюсь сделать его проще и короче. Я создал массив $data1
и добавил соответствующие данные с array_merge
и сохранил его в моей модели. Но учтите, что $data1
и $exists
имеют одинаковый код внутри. Можно ли передать массив $data1
в метод поиска MyModel без переписывания того же кода?CakePHP модели с аналогичными данными
Из-за того, что мне нужно создать несколько строк в этом фрагменте, я использовал 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);
}
}
Также благодарим вас за ссылку на просмотр кода. Я не знал этого сайта. – trante