0

这有点复杂,但无论如何......好吧,我有四个表

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

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

4

1 回答 1

0

要回答你的问题,是的。是否有人会为您编写所有代码并将其放在这里?可能不是。如果您对使用 ORM 感兴趣,我敢肯定那里有一些高质量的文档,您可以阅读和使用。

ORM 只不过是一种处理数据库的面向对象的方法。不是将表格视为表格,而是将表格视为对象并对其进行操作,从而提供代码重用和代码相互作用的力量。但是,使用 ORM 的权衡通常是开销。这就是为什么许多小型项目不使用它的原因——对于他们需要的东西来说太多了。

于 2013-07-15T19:33:45.720 回答