区块链技术博客
www.b2bchain.cn

如何访问对象数据PHP CakePHP 3.1 – php程序员分享

本文介绍了如何访问对象数据PHP CakePHP 3.1 – php程序员分享,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

这是一个cakephp 3.1查询结果,我希望直接访问$ data-> items,但是我收到一条错误消息,指出未找到关键项目,并且我不希望使用funtcion toArray(),因为如果我这样做了只会返回’items’=> …,而我丢失了所有’query’=> …信息。
您能以正确的语法帮助我获得$ data-> items或$ data-> {‘items’} …

$data = object(CakeORMResultSet) {      'query' => object(CakeORMQuery) {          '(help)' => 'This is a Query object, to get the results execute or iterate it.',         'sql' => 'SELECT Posts_types.id AS `Posts_types__id`, Posts_types.name AS `Posts_types__name` FROM posts_types Posts_types ORDER BY id ASC',         'params' => [],         'defaultTypes' => [             'Posts_types.id' => 'integer',             'id' => 'integer',             'Posts_types.name' => 'string',             'name' => 'string'         ],         'decorators' => (int) 0,         'executed' => true,         'hydrate' => true,         'buffered' => true,         'formatters' => (int) 0,         'mapReducers' => (int) 0,         'contain' => [],         'matching' => [],         'extraOptions' => [],         'repository' => object(CakeORMTable) {              'registryAlias' => 'Posts_types',             'table' => 'posts_types',             'alias' => 'Posts_types',             'entityClass' => 'CakeORMEntity',             'associations' => [],             'behaviors' => [],             'defaultConnection' => 'default',             'connectionName' => 'default'          }      },     'items' => [         (int) 0 => object(CakeORMEntity) {              'id' => (int) 1,             'name' => 'Descriptif de la formation',             '[new]' => false,             '[accessible]' => [                 '*' => true             ],             '[dirty]' => [],             '[original]' => [],             '[virtual]' => [],             '[errors]' => [],             '[repository]' => 'Posts_types'          },         (int) 1 => object(CakeORMEntity) {              'id' => (int) 2,             'name' => 'Cours',             '[new]' => false,             '[accessible]' => [                 '*' => true             ],             '[dirty]' => [],             '[original]' => [],             '[virtual]' => [],             '[errors]' => [],             '[repository]' => 'Posts_types'          },         (int) 2 => object(CakeORMEntity) {              'id' => (int) 3,             'name' => 'Evénements',             '[new]' => false,             '[accessible]' => [                 '*' => true             ],             '[dirty]' => [],             '[original]' => [],             '[virtual]' => [],             '[errors]' => [],             '[repository]' => 'Posts_types'          }     ]  } 

参考方案

没有项目属性
问题中的项目关键字是调用toArray的结果,这是您所要求的直接答案。
从the result set class和the collection trait使用的公共方法可以很明显地看出,结果集的任何属性都不能直接访问。
这是一个演示如何使用结果集的简单示例:

use CakeORMTableRegistry;  $resultSet = TableRegistry::get('Posts');  // Iterate it foreach($resultSet as $postObject) {     echo $postObject->title; }  // Obtain data as an array $arrayofPostObjects = $resultSet->toArray();  echo get_class($resultSet); // It is still a result set 

请注意,在resultSet上调用方法不会更改其内容-它仍然是结果集,不会丢失任何信息。这个问题存在误解,但由于不清楚您在做什么,因此不清楚该误解是什么。
如何获取查询?
您曾在评论中要求:

如果我想获取$ data-> query怎么办?

这是您的应用程序永远都不应做的事情,作为开发人员,您通常只希望在调试过程中这样做。大多数类实现__debugInfo-这是debug/var_dumping a result set object时两个关键字“ query”和“ items”的来源:

/**  * Returns an array that can be used to describe the internal state of this  * object.  *  * @return array  */ public function __debugInfo() {     return [         'query' => $this->_query,         'items' => $this->toArray(),     ]; } 

因此,要获取查询,您唯一需要做的就是debug / var_dump对象。如前所述,这也表明“项目”只是调用toArray的结果。
请注意,要记录所有查询,请配置query logging,显然所有开发人员都应在开发中使用Debug Kit。

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…

我正在尝试通过Twilio和Php发送一条简单的SMS,但是出现此致命错误, 未捕获的异常“ Twilio Exceptions TwilioException”,带有消息 的“未知上下文帐户” C: xampp htdocs Twilio vendor twilio sdk Twilio Rest Client.p…

可以说;我有一个$ friends数组,其中有2,000个不同的friendID号+我有一个带有10,000 bulletinID号的$ bulletins数组,该$ bulletins数组还将具有另一个值,该ID的用户ID是发布公告条目的用户现在可以获取所有具有与FriendsID数组中的userID匹配的userID的bulletinID号吗?甚至有可能…

我在iframe中将php用于计数器。我正在使用getdate();功能。我的当地时间不是下午12:16,如果我使用getdate();从php获取现在的本地时间,小时显示为13。我从php getdate()回答的值应该不是12吗?$d1=getdate(); $hournew=$d1['hours']; echo $hournew .…

我的控制器中有以下代码:function index() { $posts = $this->set('posts', $this->Portfolio->find('all')); if (isset($this->params['requested'])) { retur…

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 如何访问对象数据PHP CakePHP 3.1 – php程序员分享
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们