[英]How to get parameters from the URL to the model in cakePHP?
假設我有:
http://some-domain/application/controller/action/parameter
這以某種方式在cakePHP中工作。 現在,我想知道確切的“參數”是什么。 但是在模型內部。 如何獲得這些信息?
我必須說有一個包含“下一步”按鈕的公式編寫器,我想在beforeValidate()中驗證模型內部的輸入。 但是我必須知道單擊提交按鈕時用戶在哪個頁面上。 此頁面為“參數”。
Router::getParams()
隨處可用,並提供
[plugin] =>
[controller] => leads
[action] => step1
[named] => Array()
[pass] => Array()
[url] => Array(
[ext] => html
[url] => someurl/post-1
)
CakePHP中有兩種類型的參數,您已傳遞參數和命名參數。 傳遞的參數如您的示例所示,並將作為url的一部分傳遞。
http://example.com/controller/action/passed_param
echo $this->params['passed'][0] // 'passed_param'
http://example.com/controller/action/name:param
echo $this->params['named']['name'] // 'param'
我建議您在控制器中獲取參數,並通過它們調用模型方法。
如
$this->Model->find('all', array('conditions'=>array('id'=>$this->params['passed'][0])));
關於它的工作方式,您將需要查看您的路線文件。 在您的app/config/routes.php
您將找到所有路由以及傳遞了哪些部分。
標准的蛋糕網址格式通常如下,如您在路線中所見。 array('controller'=>'MyController', 'action'=>'MyAction', 'MyParam');
我似乎無法在有關Params的書中找到特定的頁面,但是在Google周圍有指南。
模型(以MVC設計模式)不應直接訪問任何外部變量。 正確的方法是將該變量作為參數從Controller或View傳遞:
$myModelObj->doSth($getParameter);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.