> drupal 8的实体查询API:综合指南
>> drupal 8从EntityFieldQuery(Drupal 7)过渡到用于查询实体的更强大的服务。通过静态调用或依赖注入访问该服务,使用条件方法促进了复杂的查询。 本指南探讨了其功能。entity.query
- 服务:
drupal 8实体查询的核心。 为特定实体类型(节点,用户等)创建查询对象。 条件方法:entity.query
> 允许基于字段值,类属性和语言代码(langcode)的过滤。 - :使用其ID加载单个或多个实体的功能。
execute()
访问 - >服务
entity_load()
存在访问服务的两种方法:entity_load_multiple()
> 1。静态访问(较少推荐):
entity.query
>
2。依赖注入(推荐):
$query = \Drupal::entityQuery('node');这种方法是更好的可检验性和脱钩的优选。
>
构建查询以下是证明查询结构的示例:
$entity_query_service = $container->get('entity.query'); $query = $entity_query_service->get('node');简单查询(已发布节点):
>
>包含一个节点ID的数组。>
>此检索在当前时间之前修改的已发表的节点,标题中包含“猫”,并在
$query = \Drupal::entityQuery('node') ->condition('status', 1); $nids = $query->execute();
$nids
>条件组(和/或):
这使用>找到匹配标题或标签条件的节点。
也可用。$query = \Drupal::entityQuery('node') ->condition('status', 1) ->condition('changed', REQUEST_TIME, '<') ->condition('title', 'cat', 'CONTAINS') ->condition('field_tags.entity.name', 'cats'); $nids = $query->execute();
加载实体field_tags
field_tags.entity.name
执行查询后,使用这些功能加载实体:
>单实体:
$query = \Drupal::entityQuery('node') ->condition('status', 1) ->condition('changed', REQUEST_TIME, '<'); $group = $query->orConditionGroup() ->condition('title', 'cat', 'CONTAINS') ->condition('field_tags.entity.name', 'cats'); $nids = $query->condition($group)->execute();
多个实体:orConditionGroup
andConditionGroup
结论
Drupal 8的实体查询API对其前任提供了重大改进。 其面向对象的方法和灵活条件方法使开发人员能够构建复杂的实体查询。 记住要利用依赖注入以进行更好的代码实践。
以上是Drupal 8版本的EntityFieldQuery的详细内容。更多信息请关注PHP中文网其他相关文章!

phpientifiesauser'ssessionusessessionSessionCookiesAndSessionIds.1)whiwSession_start()被称为,phpgeneratesainiquesesesessionIdStoredInacookInAcookInamedInAcienamedphpsessidontheuser'sbrowser'sbrowser.2)thisIdAllowSphptptpptpptpptpptortoreTessessionDataAfromtheserverMtheserver。

PHP会话的安全可以通过以下措施实现:1.使用session_regenerate_id()在用户登录或重要操作时重新生成会话ID。2.通过HTTPS协议加密传输会话ID。3.使用session_save_path()指定安全目录存储会话数据,并正确设置权限。

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

ToretrievedatafromaPHPsession,startthesessionwithsession_start()andaccessvariablesinthe$_SESSIONarray.Forexample:1)Startthesession:session_start().2)Retrievedata:$username=$_SESSION['username'];echo"Welcome,".$username;.Sessionsareserver-si

利用会话构建高效购物车系统的步骤包括:1)理解会话的定义与作用,会话是服务器端的存储机制,用于跨请求维护用户状态;2)实现基本的会话管理,如添加商品到购物车;3)扩展到高级用法,支持商品数量管理和删除;4)优化性能和安全性,通过持久化会话数据和使用安全的会话标识符。

本文讨论了PHP中的crypt()和password_hash()之间的差异,以进行密码哈希,重点介绍其实施,安全性和对现代Web应用程序的适用性。

文章讨论了通过输入验证,输出编码以及使用OWASP ESAPI和HTML净化器之类的工具来防止PHP中的跨站点脚本(XSS)。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版

禅工作室 13.0.1
功能强大的PHP集成开发环境