#php
#php
Вопрос:
У меня есть несколько таблиц в форме, которая выглядит как этот прототип:
<tr><td><input type="text" name="directorios_url[]" value="" /></td>
<td><input type="text" name="directorios_kword[]" value="" /></td>
<td><input type="text" name="directorios_link[]" value="" /></td></tr>
Дело в том, что когда я пытаюсь извлечь их, чтобы использовать в моем mapper, я, кажется, получаю только значения третьего в каждой строке:
protected '_directorios' =>
array
0 => string 'www.test.com/dir' (length=16)
protected '_rssFeeds' =>
array
0 => string 'www.test.com/rss' (length=16)
etc...
прямо сейчас я использую функцию в mapper под названием setOptions, которая выглядит следующим образом:
public function setOptions(array $options) {
$methods = get_class_methods($this);
foreach ($options as $key => $value) {
//test
if(preg_match("/[a-zA-Z]_/", $key)){
$key = substr($key, 0, strpos($key.'_', '_') );
$method = 'set' . ucfirst($key);
if (in_array($method, $methods)) {
$this->$method($value);
}
}else{
//
$method = 'set' . ucfirst($key);
if (in_array($method, $methods)) {
$this->$method($value);
}
}
}
return $this;
}
Есть идеи о том, как я мог бы получить эти массивы в виде
protected '_directorios' =>
array
'directorios_url'
array( 0 => 'something.com',
1 => 'something2.com'),
array
'directorios_kword'
array( 0 => 'blah',
1 => 'blah'),
array
'directorios_link'
array( 0 => 'www.test.com/dir',
1 => 'www.test2.com/dir')
РЕДАКТИРОВАТЬ: для получения дополнительной информации установщики и получатели этой модели имеют общую форму:
public function setDirectorios($directorios) {
$this->_directorios = (array) $directorios;
return $this;
}
public function getDirectorios() {
return $this->_directorios;
}
Комментарии:
1. Передаете ли вы опубликованные данные в setOptions, вот так:
$mapper->setOptions(_$POST);
? Если вы хотите опубликовать глубоко вложенный массив данных, попробуйте использовать поля формы, подобные этому:.. name="directorios[url][]"..
,.. name="directorios[kword][]"..
2. @Robin да, я делаю что-то подобное. Я попробую ваше предложение прямо сейчас
3. @Robin… защищенный ‘_directorios’ => массив ‘dir_url’ => массив 0 => строка ‘url1’ (длина = 4) 1 => строка ‘url2’ (длина = 4) ‘dir_kword’ => массив 0 => строка ‘kword1’ (длина = 6) 1 => строка ‘kword2’ (длина = 6) ‘dir_link’ => массив 0 => строка ‘link1’ (длина = 5) 1 => строка ‘link2’ (длина= 5) 😀 это сработало! Большое спасибо!