laravel如何以一对多关系访问数据

问题描述 投票:-1回答:1

ive在我的模型Project和Task之间有一对多的关系。我不知道如何通过项目表中的数据访问任务表中的数据。我试图通过{{$$ projects-> task-> taskname}}等访问任务的名称,但它不会让我

我的表如下所示

任务:id | project_id |任务名称|说明|估计时间| taskstatus | created_at | Updated_at

项目:id |项目名称| projectnamenospace |项目说明| created_at | Updated_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]);
    }
}
php laravel foreign-keys one-to-many
1个回答
0
投票

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

@foreach($projects as $key=>$project)
    @foreach($project->task as $taskRow)
        {{$taskRow->taskname}}
    @endforeach
@endforeach
© www.soinside.com 2019 - 2024. All rights reserved.