用户
 找回密码
 入住 CI 中国社区
搜索
查看: 6289|回复: 18
收起左侧

[HELP] M层文件能相互引用吗?

[复制链接]
发表于 2009-8-18 11:32:49 | 显示全部楼层 |阅读模式
如果有在m层新建了两个文件 一个文件是category_model.php  其中有个方法叫 get_category_name_by_id
在另个一个文件 article_model.php 文件中

我能调用 get_category_name_by_id 这个方法吗?
如果能该怎么写啊。
发表于 2009-8-18 12:23:23 | 显示全部楼层
load->model 试试,如果能就可以。
 楼主| 发表于 2009-8-18 13:29:01 | 显示全部楼层
我在 article_model.php
public function article
{
        $this->load->model('category_model');
        $category=  new Category_model();
        $category->get_category_name_by_id ();
}
这样可以调用到~~感觉上不怎么好
有没有更好的写法
发表于 2009-8-18 13:56:43 | 显示全部楼层
为什么要这么做?
在真正开始写程序前,多了解下MVC这个架构后者说模式的真正思想。
发表于 2009-8-18 13:59:34 | 显示全部楼层
确实是,要用 MVC 的方式思考问题。
 楼主| 发表于 2009-8-18 14:29:08 | 显示全部楼层
如果我在文章显示页面 :要显示文章信息和它所属目录名
你的意思是不是叫我先在c 层调用article_model  读出文章信息  然后取出目录id  然后在调用category_model这个来获取目录名
还有是有别的什么解决方案
发表于 2009-8-18 14:55:20 | 显示全部楼层
public function article()
{
        $this->load->model('category_model');
        $this->category_model->get_category_name_by_id ();
}
发表于 2009-8-18 15:01:13 | 显示全部楼层
狭隘的用CI对于Model的理解来说,Model对所有数据进行处理(也就是说,Model并不知道也不用管你将对数据如何二次加工以及将会显示在哪里),行为逻辑交给Controller,具体表现交给View(试图只管显示从控制器传递过来的数据,它也不会管这些数据是从哪里来的)。
中间的协调者是控制器。
这是狭隘的MVC架构,对于那些用PHP开始的轻型WEB程序,够用了。尽量将数据层和现实逻辑从处理逻辑中分离出来。
现在知道该怎么做了吗?
 楼主| 发表于 2009-8-18 15:17:51 | 显示全部楼层
本帖最后由 kunwsk 于 2009-8-18 15:30 编辑

7楼的我试过 那样写不行
  它会报错
  Message: Undefined property: article_model:: $category_model

8楼 感觉好像你是赞同我上面的意见在c层那样处理是不  你能不能明确一点~~~~你的解决方法。 猜起来一是好费劲 ,二是不一定准确。我是一个初学者 很多地方都是迷糊的
主要是如果把逻辑全部写c层那样代码会很多 我想如果能一些逻辑判断能不能分散开来
比如:文章 他的可以把一些 获取数据的条件写在m层 或者 通过参数传递给 存储过程 返回你要的结果。我在不同的控制层调用就只需要输入一些必要的条件就可以重用m层的一些方法 修改我想也比较方便
发表于 2009-8-18 15:36:14 | 显示全部楼层
7楼的我试过 那样写不行
  它会报错
  Message: Undefined property: article_model:: $category_model

8楼 感觉好像你是赞同我上面的意见在c层那样处理是不  你能不能明确一点~~~~你的解决方法。 猜起来一是好费 ...
kunwsk 发表于 2009-8-18 15:17

这是个notice级别的错误,可以设置error_report过滤
关键是你能不能用这个方法获取category_model,能获取不就解决问题了嘛!

本版积分规则