Phalcon 4 教程(8)-- 第一个url的链接以及第一个form

承接前面的tutorial小例子,本篇根据其官方网站的例子来一个url以及form的提交。难点在于正确得获取目标链接的url地址。Phalcon 4 这里默认不再指向IndexController.php,所以需要做个修改。

1.链接跳转

在index的view中添加上链接,app/views/index/index.phtml代码如下:


<?php
echo "<h1>Hello!!</h1><br>";
$path =  strpos(BASE_PATH,'\\')? substr(BASE_PATH,strrpos(BASE_PATH,'\\')+1):substr(BASE_PATH,strrpos(BASE_PATH,'/')+1);

echo PHP_EOL;
echo PHP_EOL;
echo $this->tag->linkTo(
    $path .'/'.'signup/hi',
    'Sign Up Here!'
);

我这里的BASE_PATH是个xampp/htdocs/tutorial,需要把tutorial截取出来
substr(BASE_PATH,strrpos(BASE_PATH,’\’)+1):substr(BASE_PATH,strrpos(BASE_PATH,’/’)+1); 否则会跳到根目录。这里,我们把链接的目标指向SignupController.php的hiAction
然后,修改app/controllers/SignupController.php

<?php
declare(strict_types=1);

class SignupController extends ControllerBase
{
    
    
    public function indexAction()
    {
    
    
    }
    public  function hiAction(){
    
    
        $this->view->disable();
        echo '<h1>Just say hi</h1>';
    }
}


打开localhost/tutorial/,显示如下
在这里插入图片描述
然后,点击链接,后调到SignupController.php的hiAction
在这里插入图片描述
2.表单Form跳转
Form中可以拥有的元素很多,这里仅仅以文本框和get方法提交为例。更多的form元素类型,请查看phalcon 的Tag部分。app/views/signup/index.phtml代码如下。注意,仍然需要注意url路径的问题 。

<h2>Sign up using this form</h2>
<?php 
    $path =  strpos(BASE_PATH,'\\')? substr(BASE_PATH,strrpos(BASE_PATH,'\\')+1):substr(BASE_PATH,strrpos(BASE_PATH,'/')+1);
    echo $this->tag->form($path."/signup/register"); ?>
    <p>
        <label for="name">Name</label>
        <?php echo $this->tag->textField("name"); ?>
    </p>
    <p>
        <label for="email">E-Mail</label>
        <?php echo $this->tag->textField("email"); ?>
    </p>
    <p>
        <?php echo $this->tag->submitButton("Register"); ?>
    </p>
</form>

然后,修改SignupController.php.这里的Request用来获取form的值。

<?php
declare(strict_types=1);
use Phalcon\Http\Request;

class SignupController extends ControllerBase
{
    
    
    public function indexAction()
    {
    
    
    }

    public  function hiAction(){
    
    
        $this->view->disable();
        echo '<h1>Just say hi</h1>';
    }
    public function registerAction()
    {
    
    
        $request = new Request();
        $name = $request->get('name');
        $email = $request->get('email');
        $this->view->disable();
        echo $name.'=='.$email;
    }
}

localhost/tutorial/signup效果如下
在这里插入图片描述
输入后,点击Register,显示如下:
在这里插入图片描述

齐活。

后记: 为方便起见,由于我没有修改Phalcon
4自己生成的.htaccess文件,所以没有修改其代码以更好得适应url路径。

猜你喜欢

转载自blog.csdn.net/yaoguoxing/article/details/106562442