我正在閱讀$ params上的CakePHP手冊,並想知道每個參數的適當用法是什麼?我知道返回的數組稍微有些不同('url'實際上有一個名爲'url'的數組鍵,它返回控制器/操作,而'named'不會。有人可以舉例說明爲什麼它很重要(我看到了url的結構差異,也不知道爲什麼key:value和key = value之間的區別)
2
A
回答
8
TLDR:對於CakePHP 2.x:是否使用params ['named']或params ['url']取決於您要查找的數據。'url'返回域後的整個url的字符串,'named'返回數組任何通過「命名」變量(逗號分隔鍵:值對)
CakePHP的3.X:沒有 '命名' 變量
更深入的解釋:
最好的方式來獲得的,爲什麼你會使用一個想法另一個是在視圖中的調試參數:
debug($ this-> params);
你會發現,params數組中有很多數據。例如,我的網址:http://www.example.com/dashboards/index/1/2/blah:test
params => array(
'plugin' => null,
'controller' => 'dashboards',
'action' => 'index',
'named' => array(
'blah' => 'test'
),
'pass' => array(
(int) 0 => '1',
(int) 1 => '2'
),
'models' => array(
'Dashboard' => array(
'plugin' => null,
'className' => 'Dashboard'
),
//...
)
)
data => array()
query => array(
'dashboards/index/1/2/blah:test' => ''
)
url => 'dashboards/index/1/2/blah:test'
base => ''
webroot => '/'
here => '/dashboards/index/1/2/blah:test'
正如你所看到的,在有數據的很多。你的「爲什麼你會使用‘命名爲’VS‘URL’問題是隻要看一下數據解釋。
$this->params['url']
返回字符串'dashboards/index/1/2/blah:test'
(在大多數情況下不是十分有用)。
$this->params['named']
返回鍵/值ARRAY您的命名變量(在這種情況下,只有一個變量):array('blah' => 'test');
(更多的可用,如果這就是我們正在尋找)
所以...答案是,如果你想命名變量,使用'named'
- 如果要將URL的末尾作爲字符串,請使用'url
'。
0
$ this-> params ['url']
存儲請求的當前URL以及獲取變量的鍵值對。例如,如果URL /職位/視圖/ VAR1 = 3 & VAR2 = 4叫,$這個 - > PARAMS [ '網址']應該是這樣的:?
[url] => Array
(
[url] => posts/view
[var1] => 3
[var2] => 4
)
相關問題
- 1. qurstring有效載荷在post params之間有什麼區別?
- 2. .htaccess和params
- 3. find_by_product_id(params [:id])vs find_by(params [:product_id])有什麼區別
- 4. PARAMS與URL AngularJS
- 5. CDI中@Named和@Qualifier批註之間的區別?
- 6. @Named和@Model的區別
- 7. URL和URI之間的區別?
- 8. 軌道 - 傳:PARAMS在URL
- 9. DefaultScope()和Beforefind()之間的區別?
- 10. Joomla URL params在post請求
- 11. 如何傳遞#在URL PARAMS?
- 12. Java過濾URL模式PARAMS
- 13. Python3 get.requests URL中缺少PARAMS
- 14. 提取多個PARAMS從URL
- 15. 多PARAMS
- 16. 創建操作中User.last和User.find_by_id(params [:user_id])有什麼區別?
- 17. HandlerInterceptor和WebRequestInterceptor之間的區別?
- 18. 哈希params vs url params,什麼時候用哪個?
- 19. 傳PARAMS
- 20. 字典型PARAMS
- 21. sigc :: mem_fun和通PARAMS
- 22. RelayCommand PARAMS和綁定
- 23. Firebug中的params和post請求參數之間的區別如何通過Jmeter來傳遞它們
- 24. '+ ='和'= +'之間的區別?
- 25. {!!之間的區別!!}和{{}}
- 26. ==和case之間的區別?
- 27. '#','%'和'$'之間的區別
- 28. | =和^ = css之間的區別
- 29. 「%〜dp0」和「。\」之間的區別?
- 30. .eq之間的區別。和==
一個優點命名參數是更可讀的URL,因此更適合搜索引擎優化。 – Ehtesham 2012-03-15 14:37:38