[英]laravel how do i access the data in a one to many relationship
ive got a one to many relationship between my model Project and Task.我的模型项目和任务之间存在一对多的关系。 i dont know how i can access the data from the tasks table via the data from my project table.我不知道如何通过我的项目表中的数据访问任务表中的数据。 i tried to access the name of the tasks via {{$projects->task->taskname}}
and such but it wont let me.我试图通过{{$projects->task->taskname}}
等访问任务的名称,但它不会让我。 im basically trying to display all projects with all their tasks in my view我基本上试图在我看来显示所有项目及其所有任务
my tables look like following我的表格如下所示
tasks: id |任务:id | project_id | project_id | taskname |任务名称 | description |说明 | timeestimated |预计时间 | taskstatus |任务状态 | created_at | created_at | updated_at更新时间
projects: id |项目:id | projectname |项目名称 | projectnamenospace |项目名称空间| projectdescription |项目描述 | created_at | created_at | updated_at更新时间
my models:我的模型:
Task:任务:
<?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);
}
}
Project:项目:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Project extends Model
{
public function task(){
return $this->hasMany(App::class);
}
}
My Controller:我的控制器:
<?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]);
}
}
assume in your dashboard.blade.php
file.假设在您的dashboard.blade.php
文件中。 You are passing multiple projects and each project has many tasks so you have to run two loops您正在传递多个项目,每个项目都有许多任务,因此您必须运行两个循环
@foreach($projects as $key=>$project)
@foreach($project->task as $taskRow)
{{$taskRow->taskname}}
@endforeach
@endforeach
and change in project model和项目模型的变化
public function task(){
return $this->hasMany(Task::class);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.