当前位置: 首页>>代码示例>>PHP>>正文


PHP ActiveRecord::one_to_plural方法代码示例

本文整理汇总了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);
}
开发者ID:ramainen,项目名称:doit-cms,代码行数:4,代码来源:helpers.func.php

示例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 '';
//.........这里部分代码省略.........
开发者ID:ramainen,项目名称:doit-cms,代码行数:101,代码来源:orm.func.php

示例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="" />';
};
开发者ID:ramainen,项目名称:doit-cms,代码行数:31,代码来源:orm_helpers.func.php


注:本文中的ActiveRecord::one_to_plural方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。