我已經遍及搜索這個例子,但我還沒有找到任何。我試圖爲包含查詢參數的路徑創建一個別名,例如profile?arg1 = 113。Drupal 7與查詢參數path_save
如果我提供path_save()
與路徑的純字符串表示形式,或者如果我提供url()
它沒關係。
url('profile', array('query' => array('arg1' => $uid)))
無論哪種方式,?和=在URL別名admin頁面上顯示爲轉義字符,這自然意味着無法找到路徑。
我該如何保持?和=從逃脫?
12年12月19日編輯1:的大背景是,我試圖建立別名的時候,被保存在Profile2曲線(即mymodule_profile2_presave()) - 這是當我有我需要以編程方式設置別名的所有信息。
12/19/12編輯2:我剛剛意識到問題不在插入端 - url_alias表中實際上有非轉義字符。問題是,Drupal沒有使用它之前urldecode路徑...
12年12月20日編輯3:發現使用Redirect替代路徑別名的解決方案。重定向正確解碼查詢字符串!
感謝您的快速答覆,@kiamlaluno,但不幸的是,hook_inbound_alter()不會被調用與我創建當我打電話path_save()別名 - 至少,在上下文中,我打電話它。更大的上下文是我正在保存[Profile2](http://drupal.org/project/profile2)配置文件時設置別名(即,在mymodule_profile2_presave()) - 這就是當我擁有我需要以編程方式設置別名的所有信息。我添加了mymodule_url_inbound_alter(),但只有在保存該配置文件時才調用用於編輯用戶配置文件的路徑。 – LEN
我很抱歉;我不清楚那一部分。 'hook_inbound_alter()'用於在從Drupal使用URL之前更改URL。我使用的代碼是用來改變一個像node/93?uid = 1到node/93的路徑,並將'$ _GET ['uid']設置爲1。它不用於改變'path_save()保存,但是它避免了像node/93這樣的路徑?uid = 1用於查找ID等於93 uid = 1的節點。 – kiamlaluno
沒問題。當我發表我的原始帖子時,我應該提供更大的上下文(我現在將該信息添加到帖子中)。 – LEN