Laravel 3:有没有办法为你的多对多数据透视表创建一个Eloquent模型?

时间:2013-03-13 13:12:42

标签: laravel eloquent laravel-3

我要做的是添加与我的数据透视表的关系。我有一个独特的场景,我的数据透视表在角色表上需要它自己的has_one关系。是否有人看到专门为数据透视表创建一个Eloquent模型的问题?另外,如果我要创建这个模型,有什么方法可以让以下内容返回模型吗?

$user = User::where('id', '=', 1);
$pivot = $user->hasmanyexample()->pivot();

我特别希望能够做到以下几点:

$user = User::where('id', '=', 1);
$pivot = $user->example()->pivot();

// class Example_User 
// public function role() { return $this->has_one('Role', 'role_id'); }
$role = $pivot->role(); 

1 个答案:

答案 0 :(得分:4)

首先你必须制作一个Pivot模型,在我的例子中我有3个模型

  • 版 - > has_many_and_belongs_to('格式);
  • 格式 - > has_many_and_belongs_to('版);

生成的数据透视表将被称为edition_format,当我制作模型时,您首先必须创建一个目录版,并在该文件夹中创建一个名为format.php的文件,以便您拥有以下内容:

<强> -application /模型/版本/ format.php

然后你必须更改表名,因为laravel查找复数(edition_formats)并且关系需要edition_format,所以你必须对以下内容添加:

class Edition_format extends Eloquent

{

public static $table = "edition_format";


/* whatever you want */

}

然后你可以像这样调用它:Edition_format :: find(1);