【问题标题】:how to calculate total salary of an employee with employee data in laravel 5?如何使用laravel 5中的员工数据计算员工的总工资?
【发布时间】:2016-08-01 16:28:59
【问题描述】:

我正在使用 laravel 5.1 并且有两个表。

  1. 员工
  2. 工资

结构:

雇员 id|名称|城市
1 |doe |TX
2 |约翰|Phx

工资 id|employee_id|工资
1 | 1 | 200
2 | 1 | 100






3 | 1 | 300
4 | 2 | 500
5 | 1 | 200
6 | 2 | 2 | 800
7 | 1                |200
8 |2                |600
9 |1                |200

所以根据我的问题,我想获取员工列表,包括所有员工的工资总和,并希望以表格形式在我的刀片上列出,例如 emp name|城市|总工资等。使用 laravel 雄辩的员工模型。

我已经尝试过 laravel 的访问器和修改器,但它们没有用? 如果你愿意,我也可以分享我的代码。

提前致谢。

【问题讨论】:

    标签: php laravel-5 eloquent aggregate-functions


    【解决方案1】:

    这里是用多条记录获取每个雇员的总和的 sql 查询

    SELECT b.id,employ_name, SUM(wages) FROM test.wages as a LEFT JOIN test.employees as b on a.employ_id=b.id GROUP BY a.employ_id 
    

    其中 test=数据库名称;工资和雇员是表名

    如果您需要雇用城市,您可以在雇用表中添加 b.employ_city,并在查询中的employ_name 之前或之后添加 b.employ_city,并用“,”分隔它们。我认为这个查询有助于提供有关从表中提取信息的知识。您可以转换为 laravel 接受的格式。因为我不了解laravel

    【讨论】:

    • 这是 sql。我想按照 laravel 标准这样做
    • 你可以试试这个 $employ_detail=DB::table('wages') ->leftJoin('employees', 'wages.employ_id', '=', 'employees.employ_id')- >groupBy('wages.employ_id') ->select('wages.id', 'employees.name', 'employees.city', DB::raw('SUM(wages.wages) as total_wages')) ->得到();
    【解决方案2】:

    试试这个:

    $employees = DB::table('wages')          
                 ->join('employees', 'employees.id', '=', 'wages.employee_id')
                 ->select('employee.name as name', 'employee.city as city', DB::raw('SUM(wages.wages) as total_wages'))
                 ->groupBy('employee_id')
                 ->get();
    

    在你看来:

    <table>
       <thead>
          <tr>
             <th>Name</th>
             <th>City</th>
             <th>Wage</th>
          </tr>
       </thead>
       <tbody>
          @foreach ($employees as $employee)
             <tr>
                <td>{{ $employee->name }}</td>
                <td>{{ $employee->city }}</td>
                <td>{{ $employee->total_wages }}</td>
             </tr>
          @endforeach
       </tbody>
    </table>
    

    检查它是否对您有帮助...

    【讨论】:

    • 这会有所帮助,但我还必须在视图中显示员工记录。所以需要从员工模型中查询。类似的东西:Employee::all();
    • 我认为这会奏效。但是当我得到时,我想我错过了我的问题的一部分,所以我再次编辑。
    • 基本上,您想显示一个包含员工姓名、所在城市和工资总额的表格吗?这是你想要的吗?
    • 如何添加房产?
    • 我想处理人际关系。就像 Laravel 中的 Accessors 和 Mutators 一样。没有自定义查询。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多