我也在phalcon论坛上提出了这个问题,但还没有收到回复。
我正在尝试通过检查示例来学习phalcon。目前我正在研究Vokura的例子。
我想要做的是,而不是单独登录和注册页面,我想将它们放在一个页面上,比如说索引..
我查看了部分模板并尝试使用:
//views>index.volt
<div>{{ partial("session/login") }}</div>
<div>{{ partial("session/signup") }}</div>
我还包括:
//controllers>IndexController.php
use Vokuro\Forms\LoginForm;
use Vokuro\Forms\SignUpForm;
然而,这引发了错误
Notice: Undefined variable: form
我的问题是,我需要做什么才能在索引页面上包含登录和注册表单而不更改LoginForm.php,SignupForm.php,SessionController.php所以我也可以使用链接转到个人登录和注册页面。
希望我有任何意义,谢谢你。
答案 0 :(得分:0)
假设您正在使用Vokuros的部分login和signup形式,那将会变得有点棘手。
它们都需要在视图中使用$form
变量,它们都使用该变量下的不同对象。如果您不想编辑这些部分,请参阅两步指南。
在索引控制器中,您正在声明您的用法。但形式必须实例化。以下是您可能希望针对您的案例进行调整的示例:
use Vokuro\Forms\LoginForm;
use Vokuro\Forms\SignUpForm;
class DefaultController extends \Phalcon\Mvc\Controller {
function indexAction() {
// declaration for further manipulations
$scriptLoginForm = new LoginForm();
$scriptSignUpForm = new SignUpForm();
// manipulations space
// ....
// defining for view. Notice, that I presented here
// that variables in View will have different names.
$this->view->setVar('loginForm', $scriptLoginForm);
$this->view->setVar('signUpForm', $scriptSignInForm);
// default for using one form in view would be:
// $this->view->setVar('form', $formInstance);
}
}
$form
durng视图。您可能希望在视图中操作一下,在适当的时候设置正确的表单实例。
{% set form = loginForm %}
<div>{{ partial("session/login") }}</div>
{% set form = signUpForm %}
<div>{{ partial("session/signup") }}</div>
或根据manual:
<div>{{ partial("session/login", ['form': loginForm]) }}</div>
<div>{{ partial("session/signup", ['form': signUpForm]) }}</div>
没有经过测试的例子,但应该或多或少地以这种方式工作。
请注意,这是Vokuro 的独家示例。在开发自己的零件时,您可能会根据偏差来区分不同的变量名称,例如。在partial/login
中使用$formLogin
等