English 中文(简体)
在表达式引擎中自定义字段名称映射
原标题:Custom field name mapping in expressionengine

我正对一个网站进行一些修改, 使用ExpressEngine, 有一个我似乎无法理解的概念,

具体地说,在频道和成员方面,原创建者增加了几个自定义字段。我来自传统的数据库背景,表格中的每个列都有具体有意义的名称。我还用来扩展专有数据,方法是在相关表格中添加一个相关表格,并加上一个独特的关键字。 同样,相关表格中的字段名称也是有意义的。

然而,在 EE 中,当您添加自定义字段时,该字段在表格中创建为字段_id_x,并在另一个表格中输入一个条目,说明这些字段是什么。

从UI的角度来说,这都很好, 因为它赋予管理员权力, 但是在写入任何代码时,这都是头痛。

Ok, 有模板标签, 但我往往不使用, 数据库查询也不好 。

是否有简单的方法在成员表上进行查询, 然后将 m_field_1 说成它真正叫它什么—— 在我的例子中是“addronglat”。

这张桌子上有几十块这些田地, 此时我正用“m_field_id_73”等固定名称来谈论这些田地,

有没有人知道可以轻松地将数据及其域名汇集在一起的简单方法?

理想的i喜欢做以下工作:

$result = $this->EE->db->query("select * from exp_member_data where member_id = 123")->row();
echo $result->addresslonglat;

而不是

echo $result->m_field_id_73;
最佳回答

这应该对你有用:

<?php    
$fields = $data = array();
$member_fields = $this->EE->db->query("SELECT m_field_id, m_field_name FROM exp_member_fields");
foreach($member_fields->result_array() as $row)
{
    $fields[ m_field_id_ .$row[ m_field_id ]] = $row[ m_field_name ];
}

$member_data = $this->EE->db->query("SELECT * FROM exp_member_data WHERE member_id = 1")->row();
foreach($member_data as $k => $v)
{       
    if($k !=  member_id )
    {
        $data[$fields[$k]] = $v;
    }
}
print_r($data);
?>

然后使用您新的 $data 阵列。

问题回答

暂无回答




相关问题
Weird Javascript in Template. Is this a hacking attempt?

I validated my client s website to xHTML Strict 1.0/CSS 2.1 standards last week. Today when I re-checked, I had a validation error caused by a weird and previous unknown script. I found this in the ...

Modal Registration Box using ExpressionEnine and jQuery

I d like to create a modal style registration/login box for my ExpressionEngine site. What s the best way to handle registration on a modal box? Should I call a registration page using an iframe. ...

What kind of SQL join would this be?

I need to go to two tables to get the appropriate info exp_member_groups -group_id -group_title exp_members -member_id -group_id I have the appropriate member_id So I need to check the members ...

Last 2 letters of the uri defining the used language

<?php $pageurl = "http://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; $pageurl_noslashes = str_replace("/","",$pageurl); $lang = substr($pageurl_noslashes,-3); echo $lang; ?> {exp:channel:...

热门标签