【发布时间】:2013-06-16 23:02:19
【问题描述】:
我想知道如何才能与包含两个单词的类/表建立多对多关系。
我用迁移创建了一个名为“image_codes”的数据库表。我希望一个“用户”能够拥有许多“图像代码”,而一个“图像代码”可以拥有许多“用户”。所以我的问题是我应该如何建立这种关系以及我的模型应该被称为什么。
多对多表的名称是'image_code_user'
当我尝试这个时:
class ImageCode extends Eloquent {
public $table = 'image_codes';
public function users()
{
return $this->belongsToMany('User', 'image_code_user');
}
}
class User extends Eloquent {
public $table = 'users';
public function image_codes()
{
return $this->belongsToMany('ImageCode', 'image_code_user');
}
}
/**
* The result below this lines....
**/
$user = User::find(1);
var_dump($user->image_codes)
// Outcome is NULL
我尝试了很多不同的方法,但总是相同的结果,如果我成功了。
$image_code = ImageCode::find(1);
var_dump($image_code->users)
// All users were returned
现在我开始怀疑我的表 image_codes 是否有问题,是否可以使用包含两个单词的单词来谈论“ImageCode”。所以我尝试重新制作所有东西,然后改用“代码”这个名称。
多对多表的名称是'code_user'
class Code extends Eloquent {
public $table = 'codes';
public function users()
{
return $this->belongsToMany('User', 'code_user');
}
}
class User extends Eloquent {
public $table = 'users';
public function image_codes()
{
return $this->belongsToMany('Code', 'code_user');
}
}
/**
* The result below this lines....
**/
$user = User::find(1);
var_dump($user->codes)
// All codes were returned
所以请堆栈溢出。谁能告诉我应该如何与“ImageCode”和“User”这个词建立正确的多对多关系
感谢您的建议!
【问题讨论】:
标签: many-to-many laravel laravel-4