繁体   English   中英

Laravel 4 - 通过关系模型访问表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM