日期:2014-05-17  浏览次数:20463 次

请问在php mvc 中 在v层中应该怎样调取c中的方法呢?
请问在php mvc 中 在v层中应该怎样调取c中的方法呢?数据模型m和逻辑层都已经被项目经理建成,就是不清楚如何调用,
请问应该如何调用输出方法呢?请多指导,我是刚刚参加工作不久,对mvc 不了解,谢谢各位。


------解决方案--------------------
这个问题 类似
电视机(MVC)的显示屏(V)怎么调用换台(C)操作。
------解决方案--------------------
C层解析模板 进行替换V层的变量

或者C层直接 include V层,不就可以直接调用C层的遍了么?
------解决方案--------------------
建议你还是先看看MVC的基础比较好~这样的做法是不合理的
------解决方案--------------------
有空去看看框架,比如thinkphp,zendframwork。..还有开源产品joomla ,dedecms.....
------解决方案--------------------
那要看你们公司用的是什么框架了,不同的框架调用的方法不一样。
------解决方案--------------------
V一般是展示变量和数组,很少有把逻辑写在v里面,一般都在c或者m层就处理好了,然后在c层把数据赋值到视图v上。你这样做不合理。
------解决方案--------------------
写个公共函数 哪里调都可以!!
------解决方案--------------------
在PHP CodeIgniter中,是在C里直接调用V的,跟你说的正好相反。Controller调用Model和View。
------解决方案--------------------
有些框架有固定的写法,好象Zend有这样的:
  
HTML code

<a href="<?php echo $this->url(array("action"=>"query","controller"=>"db"));?>" >try</a>

------解决方案--------------------
像smarty那样 c向v注册变量 v用变量名访问

------解决方案--------------------
这种做法是不建议的,我不知道你们是怎样实现这个分层的,

我想楼主可以去先弄清MVC三层各层的职责,在V里面调用C里面的函数或者说方法,不是一个好的做法
------解决方案--------------------
路过的
------解决方案--------------------
路过的jbknknk
------解决方案--------------------
http://wenku.baidu.com/view/a5aede00bed5b9f3f90f1cb1.html
你可以参考一下这篇文章 自己做一个就会明白了
------解决方案--------------------
如果用的是MVC结构
其实V层就相当与在C层中一样
因为基本都是用include v层的
v层可以直接调用调用它的c中的方法
------解决方案--------------------
都学过没有呀??大多数怎么都瞎说那?
------解决方案--------------------
哎~~~~~~~~~~~~~~~~~~···
------解决方案--------------------
这个一般是不允许的,如果强行做,可以把 c对象本身传给v,这样就行。

$this->view->c = $this.

其他可以使用注册器,只要在注册器里注册的,都可调用。

一般, v层只显示变量。不调用其他. 公共函数也是一种方法!



------解决方案--------------------
探讨

我现在维护的网站是phpcms 的架构有点不太清楚,多谢个位指点。

------解决方案--------------------
多看看框架的源码,不同的框架是不同的
------解决方案--------------------
mvc中的M是Model,也就是程序功能和程序的构成方式比如数据库,V就是View图形界面,C就是Controller转发请求、处理请求。放在B/S模式里V就是浏览器呈现的东西,C就是服务器的php程序。

回到楼主的“在v层中应该怎样调取c中的方法”的问题,那就简单了,那就是使用post、get或者ajax了。
------解决方案--------------------
上面的ajax其实也就是post、get

其实也有其他方法,只要是浏览器给服务器发送参数,服务器根据发送的参数进行相应的动作就是了。
------解决方案--------------------