我有employees表,其中每个员工都有一个相关的start_date,end_date和一个工资.
注意:在底部,您可以找到导入结构和数据的SQL代码.
+----+-------+------------+------------+---------+
| id | name | start_date | end_date | salary |
+----+-------+------------+------------+---------+
| 1 | Mark | 2017-05-01 | 2020-01-31 | 2000.00 |
| 2 | Tania | 2018-02-01 | 2019-08-31 | 5000.00 |
| 3 | Leo | 2018-02-01 | 2018-09-30 | 3000.00 |
| 4 | Elsa | 2018-12-01 | 2020-05-31 | 4000.00 |
+----+-------+------------+------------+---------+
Run Code Online (Sandbox Code Playgroud)
对于给定的日期范围,我想提取给定日期范围内每个月的工资平均值.
更新:我想拥有MySQL 5.6的解决方案,但是拥有MySQL 8+的解决方案(仅用于个人知识)会很棒.
如果日期范围是2018-08-01 - 2019-01-31 …
我需要在 Ubutnu 20.04 上将 PHP 版本从 8.0 切换到 7.4。我尝试运行以下命令(但没有成功):
sudo a2dismod php8.0
sudo a2enmod php7.4
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)
当我打开带有 PHP info 的本地网页时<?php phpinfo(); ?>,PHP 版本仍然是 8.0.3 而不是 7.4。
请注意,当我执行该命令时,sudo a2enmod php7.4我得到以下输出:
dan@dan:~$ sudo a2enmod php7.4
Considering dependency mpm_prefork for php7.4:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Enabling module mpm_prefork.
Considering conflict php5 for php7.4:
Enabling module php7.4.
To activate the new configuration, you need to run:
systemctl restart apache2
Run Code Online (Sandbox Code Playgroud)
也许这就是问题的根源?
Laravel 5.8应该调度同步、附加和分离事件(https://laravel.com/docs/5.8/releases搜索中间表/数据透视模型事件部分)。
更新:发布此问题后,发行说明已更新(更多信息:https: //github.com/laravel/framework/issues/28050 - https://github.com/laravel/docs/pull/5096)。
我尝试了一下,但以下代码抛出异常:
调用未定义的方法 App\ProjectUser::syncing()
注意:由于 Laravel 5.8 应该调度同步事件,我不想使用外部包。
class User extends Model
{
public function projects()
{
return $this->belongsToMany(\App\Project::class)->using(\App\ProjectUser::class);
}
}
class Project extends Model
{
public function users()
{
return $this->belongsToMany(\App\User::class)->using(\App\ProjectUser::class);
}
}
class ProjectUser extends Pivot
{
public static function boot()
{
parent::boot();
static::syncing(function ($item) {
dd('syncing event has been fired!');
});
}
}
// web.php
$project = \App\Project::first();
$project->users()->sync([1,2]);
Run Code Online (Sandbox Code Playgroud)
我尝试将启动方法从ProjectUser移至User,Project …