в этом руководстве по Yii Framework http://www.yiiframework.com/doc/guide/1.1/en/basics.controller#action
я хочу поместить свои Действия из контроллера в отдельные файлы действий, а в инструкциях сказано "создать класс действий"
иэто мой файл класса действий
class LoginAction extends CAction
{
private $contents = array();
public function run(){
$loginmodel = new LoginForm;
//answer ajax validating request
if(isset($_POST['ajax']) && $_POST['ajax']==='login-form'){
echo CActiveForm::validate($loginmodel);
Yii::app()->end();
}
//collect user input data to do login
if(isset($_POST["LoginForm"]))
{
$loginmodel->attributes = $_POST["LoginForm"];
// validate user input and redirect to the previous page if valid
if($loginmodel->validate() && $loginmodel->login()){ //<--invoking here the login and validate function
$this->redirect(Yii::app()->user->returnUrl);
}
}
$this->contents["loginmodel"] = $loginmodel;
$this->render('index',$this->contents);
}
}
и в моем контроллере
class SandboxController extends Controller{
public function actions(){
// return external action classes, e.g.:
return array(
'authlog'=>'application.controllers.authentication.LoginAction',
// page action renders "static" pages stored under 'protected/views/site/pages'
// They can be accessed via: index.php?r=site/page&view=FileName
'page'=>array(
'class'=>'CViewAction',
),
);
}
}
, и я просматриваю отдельный контроллер действий, используя
http://localhost/mysite/index.php/sandbox/authlog/login
и моя ошибка
У LoginAction и его поведения нет метода или замыкания с именем "render".
я ошибсячто-то?спасибо.
вот трассировка стека
CException LoginAction и его поведение не имеют метода или замыкания с именем "render".
D: \ xampp \ htdocs\ mysite \ framework \ base \ CComponent.php (266)
254 открытая функция __call ($ name, $ parameters) 255 {256
if ($ this -> _ m! == null) 257 {258 foreach ($ this -> _ m как $ object) 259 {260
if ($ object-> getEnabled () && method_exists ($ object, $ name)) 261
return call_user_func_array (array ($ object, $имя), параметры $);262
} 263} 264 if (class_exists ('Closure', false) && $ this-> canGetProperty ($ name) && $ this -> $ name instanceof Closure) 265
return call_user_func_array ($ this -> $имя, $ параметры);266
throw new CException (Yii :: t ('yii', '{class} и его поведение не имеют метода или замыкания с именем "{name}".', 267
array ('{class}'=> get_class ($ this),' {name} '=> $ name)));268} 269 270 / ** 271 * Возвращает именованный объект поведения.272 * Имя «аса» означает «как».273 * @param string $ поведение имя поведения 274 * @return IBehavior объект поведения или ноль, если поведение не существует 275 * / 276 открытая функция asa ($ поведение) 277 {278 возвращение isset ($ this -> _ m [$ поведение])?$ this -> _ m [$ поведение]: ноль;Трассировка стека
0
D: \ xampp \ htdocs \ mysite \ protected \ controllers \ authentication \ LoginAction.php (26): CComponent -> __ call ("render", array (" index ", array (" loginmodel "=> LoginForm)))
1
D: \ xampp \ htdocs \ mysite \ protected \ controllers\ authentication \ LoginAction.php (26): LoginAction-> render ("index", массив ("loginmodel" => LoginForm))
2
D:\ xampp \ htdocs \ mysite \ framework \ web \ actions \ CAction.php (75): LoginAction-> run ()
3
D: \ xampp \htdocs \ mysite \ framework \ web \ CController.php (309): CAction-> runWithParams (array ("login" => ""))
4
D: \ xampp \ htdocs \ mysite \ framework \ web \ CController.php (287): CController-> runAction (LoginAction)
5
D: \ xampp\ htdocs \ mysite \ framework \ web \ CController.php (266): CController-> runActionWithFilters (LoginAction, array ())
6
D: \ xampp\ HTDOCS \ MySite\ framework \ web \ CWebApplication.php (276): CController-> run ("authlog")
7
D: \ xampp \ htdocs \ mysite \ framework\ web \ CWebApplication.php (135): CWebApplication-> runController («песочница / authlog / login»)
8
D: \ xampp \ htdocs \ mysite\ framework \ base \ CApplication.php (162): CWebApplication-> processRequest ()
9
D: \ xampp \ htdocs \ mysite \ index.php (13): CApplication-> run () 2012-03-05 09:37:43 Apache / 2.2.21 (Win32) mod_ssl / 2.2.21 OpenSSL / 1.0.0e PHP / 5.3.8 mod_perl / 2.0.4 Perl / v5.10.1 Yii Framework / 1.1.10