gpt4 book ai didi

search - 过滤一个新的自定义字段 Phreeze

转载 作者:行者123 更新时间:2023-12-02 01:56:16 24 4
gpt4 key购买 nike

我正在使用 Phreeze创建一个应用程序。一切正常,但当我想在模板中过滤自定义字段 (tagtypeName) 时,它却不执行此操作。

我在 model.js 中有模型:

model.TagModel = Backbone.Model.extend({
urlRoot: 'api/tag',
idAttribute: 'id',
id: '',
name: '',
type: '',
TagtypeName: '',
baja: '',
defaults: {
'id': null,
'name': '',
'type': '',
'baja': ''
}
});

我的标准是 TagCriteria.php:

public function GetFieldFromProp($propname)
{
switch($propname)
{
case 'TagtypeName':
return 'tagtype.id';
case 'Id':
return 'tag.id';
case 'Name':
return 'tag.name';
case 'Type':
return 'tag.type';
case 'Baja':
return 'tag.baja';
default:
return parent::GetFieldFromProp($propname);
//throw new Exception('Unable to locate the database column for the property: ' . $propname);
}
}

我的记者是:公共(public)$Id; 公共(public)$名称; 公共(public)$类型; 公共(public)$巴哈; 公共(public) $TagtypeName;

/*
* GetCustomQuery returns a fully formed SQL statement. The result columns
* must match with the properties of this reporter object.
*
* @see Reporter::GetCustomQuery
* @param Criteria $criteria
* @return string SQL statement
*/
static function GetCustomQuery($criteria)
{
$sql = "select
`tagtype`.`name` as TagtypeName
,`tag`.`id` as Id
,`tag`.`name` as Name
,`tag`.`type` as Type
,`tag`.`baja` as Baja
from `tag`
inner join `tagtype` on `tagtype`.`id`=`tag`.`type`";

// the criteria can be used or you can write your own custom logic.
// be sure to escape any user input with $criteria->Escape()
$sql .= $criteria->GetWhere();
$sql .= $criteria->GetOrder();

return $sql;
}

View 有:

        <script type="text/template" id="tagCollectionTemplate">
<table class="collection table table-bordered table-hover">
<thead>
<tr>
<th id="header_Id">Id<% if (page.orderBy == 'Id') { %> <i class='icon-arrow-<%= page.orderDesc ? 'up' : 'down' %>' /><% } %></th>
<th id="header_Name">Name<% if (page.orderBy == 'Name') { %> <i class='icon-arrow-<%= page.orderDesc ? 'up' : 'down' %>' /><% } %></th>
<!--<th id="header_Type">Type<% if (page.orderBy == 'Type') { %> <i class='icon-arrow-<%= page.orderDesc ? 'up' : 'down' %>' /><% } %></th>-->
<th id="header_Type">Type<% if (page.orderBy == 'TagtypeName') { %> <i class='icon-arrow-<%= page.orderDesc ? 'up' : 'down' %>' /><% } %></th>
<th id="header_Baja">Baja<% if (page.orderBy == 'Baja') { %> <i class='icon-arrow-<%= page.orderDesc ? 'up' : 'down' %>' /><% } %></th>
</tr>
</thead>
<tbody>
<% items.each(function(item) { %>
<tr id="<%= _.escape(item.get('id')) %>">
<td><%= _.escape(item.get('id') || '') %></td>
<td><%= _.escape(item.get('name') || '') %></td>
<!--<td><%= _.escape(item.get('type') || '') %></td>-->
<td><%= _.escape(item.get('tagtypeName') || '') %></td>
<td><%= _.escape(item.get('baja') || '') %></td>
</tr>
<% }); %>
</tbody>
</table>

<%= view.getPaginationHtml(page) %>
</script>

在我的 Controller 中,我已将标签更改为我的记者:

$tags = $this->Phreezer->Query('TagReporter',$criteria)->GetDataPage($page, $pagesize);

因此,当我转到页面时,我看到的是表格而不是类型 ID,它根据需要具有来 self 的客户查询的类型名称 enter image description here

但是当我过滤时,没有找到新自定义字段的数据: enter image description here

有谁知道如何处理这个问题?

最佳答案

问题是我必须更改报告者计数并放置内部连接:

static function GetCustomCountQuery($criteria)
{
$sql = "select count(1) as counter from `tag`
inner join `tagtype` on `tagtype`.`id`=`tag`.`type`";

// the criteria can be used or you can write your own custom logic.
// be sure to escape any user input with $criteria->Escape()
$sql .= $criteria->GetWhere();

return $sql;
}

这样做对我来说没问题!

关于search - 过滤一个新的自定义字段 Phreeze,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19856165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com