我是Laravel新手,我曾经在codeigniter上工作过。 我迷恋于雄辩ORM的概念。 我有一个关于Eloquent能力的通用问题。 ORM的功能是什么,我的意思是什么级别,我们可以得到相关的表行。 如果你看一下“http://four.laravel.com/docs/eloquent#relationshipsLaravel 4雄辩能力
- 一对一
- 一对多
- 多对多
- 多态性关系。
在我看来 ”一对一“ 方式级别1. table1 table2
Example: User::find(1)->posts;
[国内找到用户,并且他的职位]
“多对多”的意思等级2表1表2表3:
Example: User::find(1)->postcomments
[国内找到用户1和他的岗位和发现的意见帖子]
那么,我们可以扩展到4个级别或5个级别。
数据库关系[项目(ID)-itemtag(ID,商品ID,标签识别) - 标记(ID) - tagtype(ID,标签识别,typeid的) - 型(ID)]
由于
= ===============
下面的帖子
虽然我喜欢msturdy的解释,但我不能让代码的工作,这样他解释说。
这是我的数据库表的代码。
CREATE TABLE `roles` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`role` VARCHAR(45) NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=4;
CREATE TABLE `students` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=5;
CREATE TABLE `student_role` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`student_id` INT(10) NULL DEFAULT NULL,
`role_id` INT(10) NULL DEFAULT NULL,
PRIMARY KEY (`id`),
INDEX `fk_student_role_1_idx` (`student_id`),
INDEX `fk_student_role_2_idx` (`role_id`),
CONSTRAINT `fk_student_role_1` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`) ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT `fk_student_role_2` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON UPDATE NO ACTION ON DELETE NO ACTION
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=6;
模型
类学生延伸锋{
public function roles()
{
return $this->belongsToMany('Role', 'student_role');
}
}
类角色延伸锋{
public function students()
{
return $this->belongsToMany('Student', 'student_role');
}
}
Route::get('aaaas/{id}', function($id){
$student = Student::find($id);
$studentstr = print_r($student->toArray(), true);
print "<pre>student: $studentstr</pre>";
$roles = print_r($student->roles->toArray(), true);
print "<pre>role: $roles</pre>";
}
================
上面的代码工作正常
但 $学生 - > roles->学生
不能按预期工作。 如果我们可以有一个工作代码来支持您的答案,那将会很棒。
但无论如何感谢您的解释。
“belongsToMany”的第二个参数需要传递用于建立连接的表的COLUMN ...不是表名 – msturdy