Табличный метод bind () |
Этот метод принимает в качестве аргумента ассоциативный массив или объект и загружает каждый его элемент в поле объекта типа JTable. Например, в результате считывания строки из таблицы #weblinks образуется ассоциативный массив в следующей строке кода из метода JTable:: load (): $row = $this->_db->loadAssoc(); Этот массив содержит ключ к каждому столбцу таблицы со значением, равным значению из загруженной строки таблицы. Ниже приведена последняя строка из рассматриваемого здесь метода. return $this->bind($row); Метод Особая обработка, которую приходится выполнять в классе WeblinksTableWeblink, относится к столбцам params и metadata таблицы # weblinks. Если в таблице имеет Распаковка происходит в методе Когда же наступает момент записи строки назад в таблицу # weblinks, приходится выполнять обратную операцию, преобразуя элементы массива в символьные строки function bind($array, $ignore ='') { (isset($array['params']) && is_array($array['params'])) { $registry = new JRegistry(); $registry->loadArray($array['params']); $array['params*] = (string)$registry; (isset($array['metadata']) && is_array($array['metadata'])) { $registry = new JRegistry(); $registry->loadArray($array['metadata']); $array['metadata'] = (string)$registry; } return parent::bind($array, $ignore); } В этом методе переменная $ array содержит ассоциативный массив полей данных для таблицы #weblinks. В качестве ключа к этому массиву служит имя столбца, а в ка Та же самая последовательность действий повторяется для преобразования метаданных из массива в символьную строку формата JSON. И в последней строке кода из рассматриваемого здесь метода вызывается метод bind() из родительского класса, что очень важно, поскольку именно здесь выполняется остальная часть обработки, относящаяся к привязке других столбцов к табличному объекту.
Понравился материал? Пригодилась информация? Плюсани в социалки!
|
Похожие новости | |
|