本文整理汇总了PHP中ActiveRecord::one_to_plural方法的典型用法代码示例。如果您正苦于以下问题:PHP ActiveRecord::one_to_plural方法的具体用法?PHP ActiveRecord::one_to_plural怎么用?PHP ActiveRecord::one_to_plural使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ActiveRecord
的用法示例。
在下文中一共展示了ActiveRecord::one_to_plural方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: to_p
function to_p($one)
{
return ActiveRecord::one_to_plural($one);
}
示例2: get
public function get($name, $mutilang = false)
{
if ($this->_options['queryready'] == false) {
$this->fetch_data_now();
}
if (isset($this->_future_data[$name])) {
return $this->_future_data[$name];
}
if ($mutilang && doitClass::$instance->lang != '' && doitClass::$instance->lang != '') {
if (isset($this->_data[$this->_cursor]) && isset($this->_data[$this->_cursor][doitClass::$instance->lang . '_' . $name]) && $this->_data[$this->_cursor][doitClass::$instance->lang . '_' . $name] != '') {
return $this->get(doitClass::$instance->lang . '_' . $name);
}
}
if (isset($this->_data[$this->_cursor])) {
//Item.title //Получение одного свойства
if (isset($this->_data[$this->_cursor][$name])) {
if (isset($this->_data[$this->_cursor]['admin_options']) && $this->_data[$this->_cursor]['admin_options'] != '' && $this->_safe_mode === false) {
$admin_options = unserialize($this->_data[$this->_cursor]['admin_options']);
if (isset($admin_options[$name])) {
return preg_replace_callback('/\\<img\\ssrc=\\"\\/cms\\/external\\/tiny_mce\\/plugins\\/mymodules\\/module\\.php\\?([\\@\\-\\_0-9a-zA-Z\\&]+)\\=([\\-\\_0-9a-zA-Z\\&]+)\\".[^\\>]*\\>/', create_function('$matches', 'if(isset(d()->plugins[str_replace("@","#",$matches[1])])){return d()->call(str_replace("@","#",$matches[1]),array($matches[2]));};return "";'), $this->_data[$this->_cursor][$name]);
}
}
return $this->_data[$this->_cursor][$name];
}
if (!in_array($name, doitClass::$instance->datapool['_known_fields'][$this->_options['table']])) {
//Item.user //Получение связанного объекта
$_is_column_exists = false;
if (isset($this->_data[$this->_cursor][$name . '_id'])) {
$_is_column_exists = true;
} else {
//Проверка на факт наличия столбца $name.'_id'
$columns = $this->columns();
if ($columns !== false) {
$columns = array_flip($columns);
//TODO: возможно, array_keys будет быстрее
if (isset($columns[$name . '_id'])) {
$_is_column_exists = true;
}
}
}
if ($_is_column_exists == true) {
if (!isset($this->_objects_cache[$name])) {
/* кеш собранных массивов */
$ids_array = array();
foreach ($this->_data as $key => $value) {
if (!empty($value[$name . '_id'])) {
$ids_array[$value[$name . '_id']] = true;
}
}
$ids_array = array_keys($ids_array);
$this->_objects_cache[$name] = activerecord_factory_from_table(ActiveRecord::one_to_plural($name))->order('')->where(' ' . DB_FIELD_DEL . id . DB_FIELD_DEL . ' IN (?)', $ids_array);
}
$cursor_key = $this->_objects_cache[$name]->get_cursor_key_by_id($this->_data[$this->_cursor][$name . '_id'], true);
if ($cursor_key === false) {
$trash = clone $this->_objects_cache[$name];
return $trash->limit('0')->where('false');
}
return $this->_objects_cache[$name][$cursor_key];
}
//Item.users
//1. Поиск альтернативных подходящих столбцов
//TODO: удалить позже
$foundedfield = false;
//ищем поле item_id в таблице users
//??щем таблицу с названием $name (например, users)
$columns = $this->columns($name);
if ($columns === false && $name == 'template') {
return '';
//template - ключевое частозапрашиваемое поле, данный оборот ускорит работу
}
/*
DEPRECATED - лишние запросы
if ($columns===false) {
$_tmpael = activerecord_factory_from_table($this->_options["table"]);
return $_tmpael->find_by('url',$name);
}
*/
//при запросе users возможны несколько случаев
//Четрые варианта: 1. есть И user_id, 2. и (3. или) users_to_groups, 4. только вспомогательная таблица
//При запросе users_over_memberships преобразуем $name в users
$over_position = strpos($name, '_over_');
if ($over_position !== false) {
$over_method = substr($name, $over_position + 6);
$name = substr($name, 0, $over_position);
$_tmpael = activerecord_factory_from_table($name);
$second_table_column = ActiveRecord::plural_to_one(strtolower($name)) . '_id';
//Проверка на факт наличия таблицы users_to_groups
$ids_array = $this->{$over_method}->select($second_table_column)->to_array;
$ids = array();
foreach ($ids_array as $key => $value) {
$ids[] = $value[$second_table_column];
}
return $_tmpael->where("`id` IN (?)", $ids);
} else {
$many_to_many_table = $this->calc_many_to_many_table_name($name, $this->_options['table']);
$many_to_many_table_columns = $this->columns($many_to_many_table);
}
if (strpos($name, ' ') !== false) {
return '';
//.........这里部分代码省略.........
示例3: d
<?php
d()->as_title = function ($value, $field, $object) {
if (substr($field, -3) == '_id') {
$table = ActiveRecord::one_to_plural(substr($field, 0, -3));
$result = activerecord_factory_from_table($table)->find($value)->select('title');
if ($result->is_empty) {
return '';
}
return $result->title;
}
return '';
};
d()->as_object_title = function ($value, $field, $object) {
if (substr($field, -3) == '_id') {
return $object[substr($field, 0, -3)]['title'];
}
return '';
};
d()->as_fast_title = function ($value, $field, $object) {
if (substr($field, -3) == '_id') {
return $object[substr($field, 0, -3)]['title'];
}
return '';
};
d()->as_preview = function ($value, $field, $object) {
if ($value == '') {
return '';
}
return '<img src="' . d()->preview(array($value, '100', '100')) . '" alt="" />';
};