<td>{$v.pay_status|raw|keyvalue='order.pay_status',true}</td>
thinkphp5页面上看到这么一段代码,会显示出文字,$v.pay_status是数字值, keyvalue='order.pay_status',true 这一段是怎么编译运行的? 在哪里找到这段的代码变成文字的??
另:
$list = Db::table(PREV . 'order')->alias('o')
->leftJoin('__MEMBER__ m','m.id=o.member_id')
->leftJoin('__RECHARGE_GOODS__ g','g.id=o.goods_id')
->field('o.*,m.name,g.title')
->where($where)
->bind($bind)
->order('o.id desc')->paginate([
'list_rows' => 20,
'query' => $query
])->each(function($item,$key){
//$item['order_status_name'] = keyvalue($item['order_status'],'agent.level');
return $item;
});
return view('',[
'list' => $list->items(),
'total'=> $list->total(),
'page_html' => $list->render(),
'query' => $query
]);
上面这一段是thinkphp5的页面数据输出代码吗?这些函数好像在官方文档没找到,但是又可以直接输出页面数据。
输出
```php
<td><?php echo keyvalue($v['pay_status'],'order.pay_status',true); ?></td>
```
keyvalue函数名,第一参数就是那个值,后面二三个参数用逗号隔开
不知道你这个问题是否已经解决, 如果还没有解决的话:这段代码的执行过程如下:
首先,$v.pay_status
表示获取一个 $v
的对象属性 pay_status
的值。
|raw
表示将属性值原样输出,而不进行转义。
|keyvalue='order.pay_status',true
表示通过键值对的形式进行转换。其中 'order.pay_status'
表示查找 order
表的字段 pay_status
对应的关联数组,true
表示如果找不到对应的关联值,则输出原始的属性值。
你可以在thinkphp5的官方文档中的模板引擎部分找到有关模板标签和过滤器的详细信息。具体在文档中的位置是在"模板引擎" -> "模板标签" -> "数组和对象处理"这一章节。
这段代码在thinkphp5页面中的作用是执行数据库查询,并将查询结果传递给视图进行展示。
具体来说,代码使用了Db
类来连接数据库,然后使用了table()
方法指定了要查询的数据表,alias()
方法设置了表的别名,leftJoin()
方法进行了表的连接查询,field()
方法选择了要查询的字段,where()
方法设置了查询条件,bind()
方法绑定了查询参数,order()
方法设置了排序方式,paginate()
方法设置了分页参数。
最后,each()
方法是对查询结果进行遍历,并在遍历过程中对每一个查询结果进行处理。在这段代码中,被注释掉的代码$item['order_status_name'] = keyvalue($item['order_status'],'agent.level');
可能是给查询结果添加一个名为 order_status_name
的新属性,并调用了keyvalue()
函数对 order_status
进行转换。不过由于代码被注释掉了,所以具体的作用不能确定。
你可以在thinkphp5的官方文档中的数据库操作部分找到有关数据库查询和操作的详细信息。具体在文档中的位置是在"数据库操作"这一章节。