如何在Laravel 5.8中覆盖更新方法

时间:2019-03-29 09:08:34

标签: laravel

我正在尝试创建一个链接到时间表的票务系统。每当有人更新票证时,他们都可以选择使用time_spent表单对象提交已花费了多少时间的票证。时间表多态链接到许多对象。

我想创建一个特征CreatesTimesheets,然后将其应用于相关模型,以便:

  • 每个模型都有一个timesheets()函数。
  • 它重写每个模型的特征的update()方法,以检查是否在time_spent中提交了任何时间。

这是第二位不起作用。我的代码如下,当我更新模型时(正常工作),即使使用简单的dd()进行测试,此代码也不会触发。

我该如何解决?

<?php

namespace App\Traits;

use App\Models\HR\Timesheet;
use Auth;

trait CreatesTimesheets
{
    public function update(array $attributes = [], array $options = [])
    {
        dd('test');
        if ($request->time_spent) 
        {
            $timesheet = new Timesheet;
            $timesheet->time_logged_in_mins = $request->time_spent;
            $timesheet->appointment_id      = Auth::user()->appointedJobIDToUse();
            $this->timesheets()->save($timesheet);
        }

        parent::update($attributes, $options);
    }

    public function timesheets()
    {
        return $this->morphToMany('App\Models\HR\Timesheet', 'timesheetable');
    }
}

0 个答案:

没有答案