Json 响应按来自拉拉维尔中另一个表的 ID 筛选

目前,我的数据库中有这2个不同的。views

第一个是列出所有项目及其详细信息的地方view_project_percentage

以及每个特定项目的任务列表view_projtask

view_project_percentage

http://img4.mukewang.com/631e957d0001cb2f06580776.jpg

view_projtask

http://img4.mukewang.com/631e95880001a6de06580581.jpg

我有这个工作代码


我的模型


Project.php


 <?php


 namespace App\Models;


use Illuminate\Database\Eloquent\Model;


class Project extends Model

{

protected $table = "view_project_percentage";


public function tasks()

{

    return $this->hasMany(ProjectTask::class, 'projCode', 'proj_code')

    ->where('deleted',0);

}

}


ProjectTask.php


<?php


namespace App\Models;


use Illuminate\Database\Eloquent\Model;


class ProjectTask extends Model

{

protected $table = "view_projtask";


public function project()

{

    return $this->belongsTo(Project::class, 'proj_code', 'projCode')

    ->where('deleted',0)

    ->where('taskDeleted',0);

}

在我的我有这个Controller


 public function get_all_projtask()

{

    return response()->json(Project::with('tasks')->get());

}


智慧大石
浏览 69回答 1
1回答

猛跑小猪

您可以为员工项目创建另一个模型<?php...class EmployeeProject extends Model{protected $table = 'tbl_emp_proj';public function projects(){&nbsp; &nbsp; return $this->hasMany(Project::class, 'projCode');}在您的控制器中,您可以使用它们的 empployee id 和延迟负载关系来过滤它。顺便说一句,在这里阅读更多文档public function get_all_projtask(){&nbsp; &nbsp; $useProject = EmployeeProject::where(['emp_id' =>auth()->user()->company_id])-firstOrFail();&nbsp; &nbsp; return response()->json($useProject->load('projects.tasks'));}
打开App,查看更多内容
随时随地看视频慕课网APP