【问题标题】:How to Retrieve data from Pivot table in Laravel using Datatables如何使用数据表从 Laravel 中的数据透视表中检索数据
【发布时间】:2020-04-06 16:30:55
【问题描述】:

我正在尝试使用 Yajra 数据表从数据透视表中检索数据。

模型项目.php

class Project extends Model
{
    protected $fillable = ['id','client_id', 'name','description', 'projectType','service_id','files','startDate','endDate','progress','status'];

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

Model Employee.php

class Employee extends Model
{
    protected $fillable = ['id', 'name', 'surname','address','tel', 'email','profession'];

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

Model EmployeeProject.php

class EmployeeProject extends Pivot
{
    protected $fillable = ['id', 'employee_id', 'project_id'];
}

ProjectsController.php

$projects = Project::with('employee');
return Datatables::of($projects)
->make(true);

projects.blade.php

$('#datatable').DataTable({
                "processing": true,
                "serverSide": true,
                "paging":   false,
                "ajax": "{{ route('projects.getdata') }}",
                "order": [[1,'desc']],
                "columns": [    
                {"data": "id"},     
                {"data": "client_id"},
                {"data": "name"},
                {"data": "description"},
                {"data": "projectType"},
                {"data": "service_id"},               
                {"data": "employees.name"}, - **I need to retrieve the names of the employees who are involved in the project**
                {"data": "files"},
                {"data": "startDate"},
                {"data": "endDate"},
                {"data": "progress", orderable:false, searchable: false},
                {"data": "status"},

让您知道我正在使用数据透视表 employee_project 来链接表(员工和项目)。创建功能运行良好,因为记录被正确添加到数据透视表。 问题是我需要显示参与该项目的所有员工的姓名,例如:

id| name | employeeName  |...|
-----------------------------
1 | test | John, Mark,...|...|

提前谢谢你。

【问题讨论】:

  • 您可以使用 implode 来保存逗号 saparete 等数据。!

标签: mysql database laravel datatables pivot


【解决方案1】:

试试这样的:

在projects.blade.php中

{
  data: function (row) {
   let employeeNames= [];
     $(row.employee).each(function (i, e) {
       employeeNames.push(e.name);
       });
     return employeeNames.join(", ")
   }, name: 'employee.name'
},

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-27
    • 2021-11-07
    • 2021-01-22
    • 2015-09-02
    • 1970-01-01
    • 2018-04-10
    • 2022-01-15
    • 1970-01-01
    相关资源
    最近更新 更多