编辑:拼写错误
我有两个模型:项目和任务。两者都是相互关系的:
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,我将必要的变量传递给我的项目视图,如下所示:
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表访问数据。 我知道上面的视图不起作用。但是我想知道一般情况下,如果我想输出任务数量,每个项目都,我将如何处理它。
或其他任何东西,这解释了,在这种特殊情况下,我如何通过关系模型访问不同的表。
答案 0 :(得分:2)
由于您使用$this->hasMany('Task');
定义了项目模型并使用获取了任务模型,因此您只需执行
{{ $project->task()->count() }}
务必将任务称为函数,而不是属性。