根据两个ID选择记录

时间:2013-07-15 18:40:44

标签: php laravel

这有点复杂,但无论如何...... 好的,我有四张桌子

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

更糟糕的是没有错误msg弹出并监视我的Mysql Server查询,这根本没有被查询(执行)。 我真的需要传递一个参数 更多信息 : 使用Print_r,似乎没有()它返回Collection对象,它返回BelongsToMany对象。

1 个答案:

答案 0 :(得分:0)

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

ORM只不过是一种面向对象的方法来处理数据库。您不必像对象一样处理表,而是将表视为对象,因此对其进行操作,从而提供代码重用和代码相互作用的强大功能。但是,使用ORM的权衡通常是开销。这就是为什么许多小项目不使用它 - 太多了他们需要的东西。