[英]How do I get a node by its path_alias? And a path_alias by a node?
我正在尝试从 Drupal 9 安装中获取原始数据,而我只是在寻找普通的 SQL 以通过其路径别名获取节点:
+--------+-------------+--------------------------------------+----------+-------------+-------------------+--------+
| id | revision_id | uuid | langcode | path | alias | status |
+--------+-------------+--------------------------------------+----------+-------------+-------------------+--------+
| 222385 | 185331 | 1086ef60-2dd5-4fce-a8b4-1fe4eb9fe5af | und | /node/25077 | /category/hello | 1 |
+--------+-------------+--------------------------------------+----------+-------------+-------------------+--------+
我不确定path_alias
与节点的关系。 如何通过路径获取节点以及通过节点获取路径? 这些 id 之一是否与 pivot 表相关,例如:
path_alias->pivot(id)->node?
如果是这样,那是什么关系表?
我只是在寻找原始的:
SELECT * FROM node WHERE [id] = 'this-id-from route alias';
我尝试使用 path_alias uuid:
SELECT *
FROM node
WHERE uuid = '1086ef60-2dd5-4fce-a8b4-1fe4eb9fe5af';
没有成功。 当我确定有一个时,我不确定两者之间的关系是什么。
试试这个解决方案。
所有参赛作品
SELECT node.nid, path_alias.path, path_alias.alias FROM `node`
LEFT JOIN path_alias ON CONCAT('/node/', node.nid) = path_alias.path;
结果
+-----+---------+-------------------------+
| nid | path | alias |
+-----+---------+-------------------------+
| 1 | /node/1 | /basic-page/test-page-1 |
| 2 | /node/2 | /basic-page/test-page-2 |
| 3 | /node/3 | /article/test-page-3 |
| 4 | /node/4 | /article/test-page-4 |
| 5 | NULL | NULL |
+-----+---------+-------------------------+
按节点 ID 搜索
SELECT node.nid, path_alias.path, path_alias.alias FROM `node`
LEFT JOIN path_alias ON CONCAT('/node/', node.nid) = path_alias.path
WHERE node.nid = 2;
结果
+-----+---------+-------------------------+
| nid | path | alias |
+-----+---------+-------------------------+
| 2 | /node/2 | /basic-page/test-page-2 |
+-----+---------+-------------------------+
按别名搜索
SELECT node.nid, path_alias.path, path_alias.alias FROM `node`
LEFT JOIN path_alias ON CONCAT('/node/', node.nid) = path_alias.path
WHERE path_alias.alias = '/article/test-page-4';
结果
+-----+---------+-------------------------+
| nid | path | alias |
+-----+---------+-------------------------+
| 4 | /node/4 | /article/test-page-4 |
+-----+---------+-------------------------+
PS:NID 5 显示没有 path_alias 条目的节点
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.