2013-07-15 76 views
0

这是有点复杂,但无论.. 好吧,我有四个表选择记录取决于两个ID

1-Projects 

id  | int 11 
name 
2-Sections 

id   | int 11 
project_id | int 11 
name 
3-Users 

id   | int 11 

4-User_Section_project (this table is used to assign users to sections they will work on in the project 

id   | int 11 
project_id | int 11 
section_id | int 11 
user_id | int 11 

反正是有使用ORM作出类似的东西的工作,我只获得分配的部分

$sections = $user->projects()->sections() 

我做它在我的用户模型中使用下面的代码

public function workshops() 
{ 


    return $this->belongsToMany('section', 'user_project_section', 'user_id', 'section_id')->whereIn('user_project_section.project_id', array(1,2,3)); 
} 

,我把它像

@foreach ($user->sections as $section) 
        {{$section->name}} 

       @endforeach 

该代码会得到相关的章节中项目1,2,3用户。 如果我想使它为一个指定的项目,我通过一个参数问题是当添加圆括号()在函数的调用视图中它不起作用,所以我不能传递一个参数

@foreach ($user->sections() as $section) 
        {{$section->name}} 

       @endforeach 
@foreach ($user->sections() as $section) 
        {{$section->name}} 

       @endforeach 

是什么让它变得更糟没有错误消息弹出和监控我的Mysql服务器查询,根本不查询(执行)。 我真的需要通过一个参数 更多信息: 使用Print_r似乎没有()它返回集合对象,它会返回BelongsToMany对象。

回答

0

要回答你的问题,是的。实际上是否有人会为您编写所有代码并将其放在此处?可能不会。如果您对使用ORM感兴趣,我确信那里有一些优秀的文档可以阅读和使用。

ORM不过是面向对象的数据库处理方法。不要像处理表一样处理表,而应该像对象一样对待表,并按照这样的方式对它们进行操作,从而借助代码重用和代码相互作用的力量。但是,使用ORM的折衷通常是开销。这就是为什么许多小项目不使用它 - 太多了他们需要的东西。

+0

我已经知道了,我使用雄辩,我只是想知道是否有人会提供一些提示。 任何方式,我做出来 –