ZendFramework-2.4 源代码 - 关于MVC - View层 - 控制器返回值

<?php
class ReturnController extends AbstractActionController
{
    public function returnAction()
    {

        // 返回方式一 :会被dipatch处理器Zend\Mvc\View\Http\CreateViewModelListener::createViewModelFromArray(...)的拦截处理
        return array(‘key1‘ => ‘key1value‘); //  == new ViewModel(array(‘key1‘ => ‘key1value‘));

        // 返回方式二: 会被dipatch处理器Zend\Mvc\View\Http\CreateViewModelListener::createViewModelFromNull(...)的拦截处理
        return null; // == new ViewModel();

        // 返回方式三:会避过dipatch处理器Zend\Mvc\View\Http\InjectTemplateListener::injectTemplate(...)的拦截处理
        // case.0
        {
            $viewModel = new ViewModel(array(
                ‘key1‘ => ‘key1value‘,
            ));
            $viewModel->setTemplate(‘module1/ctrl1/action1‘); // 使用模板,可以不用设置,会自动识别
            $viewModel->setTerminal(false); // false表示使用布局模板,默认是false
            $viewModel->setCaptureTo(‘content‘); // 放入布局文件的中的变量中
            return $viewModel;
        }
        // case.1
        {
            // 模板
            $data = array(
                ‘key1‘ => ‘key1value‘,
            );
            $viewModelTop = new ViewModel($data);
            $viewModelTop->setTemplate(‘module1/ctrl1/action1‘); // 使用模板,可以不用设置,会自动识别
            $viewModelTop->setTerminal(false); // false表示使用布局模板,默认是false
            $viewModelTop->setCaptureTo(‘content‘); // 放入布局文件的中的变量中
            $viewModelTop->setVariables(array(
                ‘childrenStr‘=>‘‘
            ));

            // 子模板
            $viewModelSub = new ViewModel($data);
            $viewModelSub->setTemplate(‘module1/ctrl1/action1sub‘);
            $viewModelTop->addChild($viewModelSub,‘childrenStr‘,true);
            return $viewModelTop;
        }

        // 返回方式四: 会避过后续所有的dipatch处理器的拦截处理
        $reponse = new \Zend\Http\PhpEnvironment\Response();
        { // headers

            $reponse->setStatusCode(200);

            $headers = new \Zend\Http\Headers();
            $reponse->setHeaders($headers);

            // 添加http响应的cookie头
            $cookie = new \Zend\Http\Header\Cookie(array(
                ‘key1‘=>‘key1_value‘,
                ‘key2‘=>‘key2_value‘,
            ));
            $headers->addHeader($cookie);

            // 添加http响应的server头
            $server = new \Zend\Http\Header\Server(‘nginx/1.6.2‘);
            $headers->addHeader($server);
        }
        { // Content
            $reponse->setContent(‘<html><head></head><body><div>hello,i am zend framework 2.4 !</div></body></html>‘);
        }

        return $reponse;
    }

}
时间: 2024-10-12 20:25:36

ZendFramework-2.4 源代码 - 关于MVC - View层 - 控制器返回值的相关文章

ZendFramework-2.4 源代码 - 关于MVC - View层 - 视图渲染器、视图插件管理器

<?php // 1. 视图渲染器 class PhpRenderer implements Renderer, TreeRendererInterface { /** * 插件管理器 */ public function getHelperPluginManager() { if (null === $this->__helpers) {// false $this->setHelperPluginManager(new HelperPluginManager()); } return

ZendFramework-2.4 源代码 - 关于MVC - View层 - 在模板内渲染子模板

<?php // 方式一: // 1.在模板内直接编写如下内容即可 $viewModel = new ViewModel(); $viewModel->setTemplate('album/album/subtemplate'); // 使用模板,可以不用设置,会自动识别 $viewModel->setVariables($this->vars()); $viewModel->setVariable('var12subtpl', 'var12subtpl_value'); e

Spring MVC控制层的返回类型--String类型与Bean类型

SpringMVC控制层的返回类型形式多样,现拿其中的两种--String类型与Bean类型作以说明. 一.测试项目的结构 说明:(jsp的名字没起好) 控制层:UserController.java --对用户的相关操作: 视图层:toFormTest.jsp--跳转至formTest.jsp (这样跳转的原因:1.由于jsp文件夹在WEB-INF目录下,所以无法直接访问:2.在目标地址formTest.jsp中的表单采用了sf标签,需在控制层中初始化表单所绑定的bean对象,所以需先进入控制

Asp.net mvc中Controller的返回值

其他资料:https://blog.csdn.net/zgscwxd/article/details/97518190 1)EmptyResult:当用户有误操作或者是图片防盗链的时候,这个EmptyResult就可以派上用场,返回它可以让用户啥也看不到内容,通过访问浏览器端的源代码,发现是一个空内容: public ActionResult EmptyResult() { //空结果当然是空白了! //至于你信不信, 我反正信了 return new EmptyResult(); } (2)C

Spring MVC中 controller方法返回值

1.返回ModelAndView 定义ModelAndView对象并返回,对象中可添加model数据.指定view 2.返回String 1.表示返回逻辑视图名 model对象通过 model.addAttribute("xxx",model)进行设定 2.redirect重定向: redirect重定向特点:浏览器地址栏中的url会变化.修改提交的request数据无法传到重定向的地址.因为重定向后重新进行request(request无法共享) 3.forward页面转发: 通过f

ZendFramework-2.4 源代码 - 关于MVC - Controller层

// 1.控制器管理器 class ServiceManager implements ServiceLocatorInterface { public function __construct(ConfigInterface $config = null) { if ($config) { $config->configureServiceManager($this); } } } abstract class AbstractPluginManager extends ServiceMana

ZendFramework-2.4 源代码 - 关于MVC - Model层

所谓的谓词Predicate // ------ 所谓的谓词 ------ // 条件 case.3 $where = new \Zend\Db\Sql\Where(); $expression = new \Zend\Db\Sql\Predicate\Expression("field1=? and field2=?",array('a','b')); $where->addPredicates($expression,\Zend\Db\Sql\Predicate\Predic

ASP.NET MVC ActionResult的其它返回值

一.ascx页面 场景:要返回代码片断,比如Ajax返回一个子页 我们先新建一个Action public ActionResult Ascx() { return PartialView(); } 我们下面再建一个View,仍然是在Action中点右键,AddView.  注意图中勾选. 于是新建了一个ascx页,我们将之少做改写一下 <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl&

MVC控制器返回值

public ActionResult Index(string id)//主页 //参数string searchString 访问方式为index?searchString=xxxx .参数string id 访问方式为index/x { string searchString = id; //return View(db.Books.ToList()); //返回一个对象集合 var s = from m in db.Books select m; //查询所有数据 if (!string