-1

我的模型项目和任务之间存在一对多的关系。我不知道如何通过项目表中的数据访问任务表中的数据。我试图通过{{$projects->task->taskname}}等访问任务的名称,但它不会让我。我基本上试图在我看来显示所有项目及其所有任务

我的表格如下所示

任务:id | 项目 ID | 任务名 | 描述 | 预计时间 | 任务状态 | created_at | 更新时间

项目:ID | 项目名称 | 项目名称空间 | 项目描述 | created_at | 更新时间

我的模型:

任务:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Task extends Model
{
    protected $fillable = [
        'taskname',
        'description',
        'tasktext',
    ];

    public function users(){
        return $this->belongsToMany('App\User');
    }

    public function comment(){
        return $this->hasMany('App\Comment');
    }

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

}

项目:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Project extends Model
{
    public function task(){
        return $this->hasMany(App::class);
    }
}

我的控制器:

<?php

namespace App\Http\Controllers;

use App\Project;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;

class DashboardController extends Controller
{
    public function index(Project $project)
    {
        $ldate = date('Y-m-d H:i:s');

        $projects = Project::all();

        $username = Auth::user()->name;
        return view('dashboard', ['user' => $username, 'ldate' => $ldate, 'projects' => $projects]);
    }
}
4

1 回答 1

0

假设在您的dashboard.blade.php文件中。您正在传递多个项目,每个项目都有很多任务,因此您必须运行两个循环

@foreach($projects as $key=>$project)
    @foreach($project->task as $taskRow)
        {{$taskRow->taskname}}
    @endforeach
@endforeach

以及项目模式的改变

public function task(){
    return $this->hasMany(Task::class);
}
于 2019-12-04T10:13:07.553 回答