求助 版主:官方研发技术组
请教MVC基本架构的实现
类型:迅睿CMS 更新时间:2021-06-23 21:12:21

请教MVC基本架构的实现。本人是初学者,想完成一个基本的MVC架构。本来有些羞于求助,奈何研究了半天还是不行。只是向各位求助了。


要实现在的内容很简单,就是通过控制器,调起model,然后循环输出。目前控制器没有问题,可以调用model,及输出view文件。主要存在的问题是Modled页面,代码如下。

Model
$rt \Phpcmf\Service::M()->db->query("select * from dr_XX")
$rows = $this->table("XXX")->getRow();
return $Rows


View
{loop $Rows $t}
{$t.id}
{$t.inputtime}
{/loop}


回帖
  • 迅睿粉丝
    #1楼    迅睿粉丝
    2021-06-22 21:43:30
    Chrome 0
    https://www.xunruicms.com/doc/207.htmlhttps://www.xunruicms.com/doc/206.html 创建控制器的方法
    可以学习下这几个教程
  • 迅睿粉丝
    #2楼    迅睿粉丝
    2021-06-22 21:56:00
    Safari 0
    模型控制的文档之前有看过。刚才看了“定义控制器“的文档。应该是控制器中没有声明 construct的部份,及未assign变量。现在的问题,assign的部份要如何设置各个字段,交给view去循环呢。
    \Phpcmf\Serivce::V()->assign {[
      'xxxx' => '测试页面',
      ]);
  • 迅睿粉丝
    #3楼    迅睿粉丝
    2021-06-22 21:57:20
    Chrome 0
    不太熟悉二开的话,可以找官方开发,然后再分析分析官方的开发代码,这样自己也学会了开发技巧。
  • 迅睿粉丝
    #4楼    迅睿粉丝
    2021-06-22 22:00:47
    Chrome 0
    先学习php再学习二次开发
  • 迅睿粉丝
    #5楼    迅睿粉丝
    2021-06-22 22:04:49
    Safari 0
    我想自己先搭一个简单的架构出来。PHP,CSS,虽不会写,但也并不陌生,代码还是可以看懂的。
  • 迅睿粉丝
    #6楼    迅睿粉丝
    2021-06-23 20:12:00
    Safari 0
    以下为实际的代码,请求大神指导,我希望自己能实现一个基本的MVC。
    Controller:<?php namespace Phpcmf\Controllers\Member;class Hs extends \Phpcmf\Common{ public function __construct(...$params) { parent::__construct(...$params); } public function index() { \Phpcmf\Service::M('HsModel', 'sto')->index(); \Phpcmf\Service::V()->assign([ 'sto_name' => $rows['sto_name'], 'sto_code' => $rows['sto_code'], 'inputtime' => $rows['inputtime'], ]); \Phpcmf\Service::V()->display('hs.html'); }}Model:<?php namespace Phpcmf\Model\Sto; // Sto表示应用目录class HsModel extends \Phpcmf\Model{ public function index() { $rt = \Phpcmf\Service::M()->db->query("select * from dr_sto"); $rows = $rt->getResultArray(); return rows; }}View: <tbody> {loop $rows $t} <tr> <td> {$t.sto_name} </td> <td> {$t.sto_code} </td> <td> {$t.inputtime} </td> </tr> {/loop} </tbody>
  • 迅睿粉丝
    #7楼    迅睿粉丝
    2021-06-23 20:20:10
    Chrome 0
    <?php namespace Phpcmf\Controllers\Member;
    class Hs extends \Phpcmf\Common
    {
        
        public function index() {
           $rows = \Phpcmf\Service::M('HsModel', 'sto')->index();
            \Phpcmf\Service::V()->assign([
                'rows' => $rows,
            ]);
            \Phpcmf\Service::V()->display('hs.html');
        }
    }


    满意答案
  • 迅睿粉丝
    #8楼    迅睿粉丝
    2021-06-23 20:37:14
    Safari 0
    官方研发技术-小卡 有劳小卡的回复。控制器做了相应更应,但还是获取不到数据。有劳小卡再帮忙看看model和view代码是否正确?
  • 迅睿粉丝
    #9楼    迅睿粉丝
    2021-06-23 20:39:58
    Chrome 0
    理论上没有问题,但是二次开发这个东西,要靠自己多研究,多调试不太熟悉二开的话,可以找官方开发,然后再分析分析官方的开发代码,这样自己也学会了开发技巧。
  • 迅睿粉丝
    #10楼    迅睿粉丝
    2021-06-23 21:12:21
    Safari 0
    @官方研发技术-小卡:折腾了一个星期,终于解决,感谢小卡的协助。