[英]Laravel 4 - Access to Table through Relational Models
编辑:错字
我有两个模型:项目和任务。 两者都是相互关联的:
Project.php
class Project extends Eloquent {
public function tasks()
{
return $this->hasMany('Task');
}
Task.php
class Task extends Eloquent {
protected $guarded = [];
public function project()
{
return $this->belongsTo('Project');
}
通过我的ProjectsController,我将必要的变量传递给我的Projects View,如下所示:
ProjectsController:
public function index()
{
$projects = Project::with('tasks')->get();
return View::make('projects.index')
->with('projects', $projects);
}
在我的视图中,我遍历每个项目以显示表格上的所有内容:
<table>
<tr>
<th>Id</th>
<th>Titel</th>
<th>Description</th>
<th>Tasks</th>
</tr>
@foreach($projects as $project)
<tr>
<td>{{$project->id}}</td>
<td>{{$project->title}}</td>
<td>{{$project->description}}</td>
<td>{{$project->task}}</td>
</tr>
@endforeach
</table>
如您所见,最后一个td-Tag应该从tasks表访问数据。 我知道上面的视图不起作用。 但是我想知道一般情况下,如果我想输出每个项目的任务数量,我将如何去做。
或者其他任何东西,这解释了,在这种特殊情况下,我如何通过关系模型访问不同的表。
因为你用$this->hasMany('Task');
定义了项目模型$this->hasMany('Task');
并取出模型与他们的任务,你可以简单地做
{{ $project->task()->count() }}
一定要把任务称为函数,而不是属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.