我不是Drupal开发人员,但我必须修复似乎由于节点而中断的网站,所以我试图弄清楚它是哪个节点以及导致错误的原因。因此,我将getRouteName
中的Url.php
方法的核心更改为:
public function getRouteName() {
if ($this->unrouted) {
$x = Url::fromUri($this->getUri());
dd(var_dump($x));
die(' === THIS IS CAUSING THE ERROR');
throw new \UnexpectedValueException('External URLs do not have an internal route name.');
}
return $this->routeName;
}
哪个给我这个:
object(Drupal\Core\Url)#3626 (12) { ["urlGenerator":protected]=> NULL ["urlAssembler":protected]=> NULL ["accessManager":protected]=> NULL ["routeName":protected]=> NULL ["routeParameters":protected]=> array(0) { } ["options":protected]=> array(0) { } ["external":protected]=> bool(false) ["unrouted":protected]=> bool(true) ["uri":protected]=> string(46) "base:node/2fd814b7-2c74-4aa7-8e28-95625e2f9b8c" ["internalPath":protected]=> NULL ["_serviceIds":protected]=> array(0) { } ["_entityStorages":protected]=> array(0) { } } === THIS IS CAUSING THE ERROR
然后,我尝试使用以下uuid查找节点:2fd814b7-2c74-4aa7-8e28-95625e2f9b8c
,但是它在数据库中不存在。我正在寻找整个数据库以尝试找到它,但似乎不存在。
我有点迷茫。此调试信息能否将我带到导致错误的内容?
答案 0 :(得分:0)
要获取当前页面的节点ID,只需使用:
\Drupal::request()->get('nid')
而且,调试中断页面的最佳方法是查看日志。