我是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