【发布时间】:2014-11-29 00:55:50
【问题描述】:
我有两个名为“works”和“slides”的表,以及两个扩展 Eloquent 的类,名为“Work”和“Slide”。 在我的“作品”表中,我有一个“id”列、一个“标题”列、一个“描述”列和一个“图像”列,在我的“幻灯片”表中,我有一个使用带有两列的外键的复合键命名为“id”和“work_id”。
这是我的数据库关系的样子:
这是我的幻灯片类的代码:
class Slide extends Eloquent {
public $timestamps = false;
public function workId() {
return $this->hasOne('work', 'work_id', 'id');
}
}
这是我的工作类的代码:
class Work extends Eloquent {
public $timestamps = false;
}
在我的索引页面中,我试图通过在我的 Slide 对象中调用“workId()”方法来获取一个 Work 对象,但是它使用以下代码返回空:
$slides = Slide::all();
$works = new \Illuminate\Database\Eloquent\Collection;
foreach ($slides as $slide) {
$works->push($slide->workId());
}
printf($works);
但是,如果我将 '$slide->workId()' 调用替换为:
Work::find($slide->work_id)
然后它找到没有问题的行。
我应该怎么做才能让函数返回 Work 对象而不是调用 Work::find()?
【问题讨论】:
标签: php mysql laravel eloquent foreign-key-relationship