如果你在這個鏈接http://www.yiiframework.com/doc/guide/1.1/en/basics.controller的#3下查看,它可以讓你將所有的控制器函數組織成單個的php文件。在Yii中正確實現runWithParams()
要做到這一點,你必須讓每個php文件包含一個擴展CAction的類。每個類必須在run()函數內部有其運行代碼。
這是我UserController.php文件
public function actions()
{
$FOLDER = '.User';
$PROJECT_ROOT = 'application.controllers' . $FOLDER;
return array (
'list' => $PROJECT_ROOT . 'ListAction',
);
}
在,我寫我需要將變量傳遞給特定的操作應用。
Yii在Yii 1.7中實現了runWithParams($ params)來允許這種情況發生。然而,當我調用(例如)DeleteAction.php文件runWithParams($ params)而不是run()並且我們的前端調用post/delete /?params = 45而不是run()時,我寫了一個錯誤, 「在文件中找不到的run()DeleteAction.php
class ListAction extends CAction
{
public function runWithParam($id)
{
SiteController::actionLoggedin();
$id = addslashes($id);
}
這意味着我需要運行()...但我不能把參數傳遞的run()。我需要runWithParams($ params)方法。
在該函數runWithParams的文檔($ params)方法 http://www.yiiframework.com/doc/api/1.1/CAction#runWithParams-detail
它說
Runs the action with the supplied request parameters. This method is internally called by CController::runAction().
我很困惑這是什麼意思?我不明白我如何能夠成功實現這一點。
你能提供什麼你正在嘗試做一個代碼示例?這個問題令人困惑,謝謝。 – thaddeusmt 2012-02-04 15:25:59
我編輯的帖子,使其成爲一個適當的問題,而不只是一個混亂的blurb。看看你是否有機會。 – Schwoebel 2012-02-04 19:41:08