【问题标题】:Laravel 4 - Access to Table through Relational ModelsLaravel 4 - 通过关系模型访问表
【发布时间】:2014-05-15 04:08:42
【问题描述】:

编辑:错字

我有两个模型:项目和任务。两者都是相互关联的:

项目.php

class Project extends Eloquent {

    public function tasks() 
    {
        return $this->hasMany('Task');
    }

任务.php

class Task extends Eloquent {

    protected $guarded = [];

    public function project()
    {
        return $this->belongsTo('Project');
    }

通过我的 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 应该访问任务表中的数据。 我知道上面的视图不起作用。但总的来说,我想知道我会怎么做,如果我想输出任务数量,每个项目都有

或者任何其他解释,在这种特殊情况下,我如何通过关系模型访问不同的表。

【问题讨论】:

    标签: php html laravel laravel-4


    【解决方案1】:

    由于您使用$this-&gt;hasMany('Task'); 定义了项目模型并获取了模型他们的任务,您可以简单地做

    {{ $project->task()->count() }}
    

    一定要像调用函数而不是属性一样调用任务。

    【讨论】:

    • 谢谢,我刚刚回到这个帖子发布了相同的答案。
    猜你喜欢
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    相关资源
    最近更新 更多