Laravel:保存一个hasOne关系变化

时间:2017-03-30 13:31:45

标签: laravel-5 eloquent laravel-eloquent

我目前在checklistItem和action之间有一个关系如下:

public function action()
{
     return $this->belongsTo(Action::class, 'action_id', 'id');
}

public function checklistItem()
{
     return $this->hasOne(ChecklistItem::class, 'action_id', 'id');
}

我目前制作了一个方法,在保存动作时,checklistItem状态也应根据所选内容而改变:

public static function saveFromRequest(Request $request)
    {
        if (($action = parent::saveFromRequest($request)) !== null){

            if (!is_null($action->checklistItem)) {
                $action->checklistItem->value->status = $action->switchStatusChecklist($action);

                //Need to update or save this specific checklistItem
                $action->checklistItem->save();
            }
        }

        return $action;
    }

function switchStatusChecklist($action)
    {
        switch($action->status) {
            case 'closed':
                $status = 'checked';
                break;
            case 'canceled':
                $status = 'notapplicable';
                break;
            default:
                $status = 'open';
                break;
        }
        return $status;
    }

问题: 我的checklistitem没有更新。

0 个答案:

没有答案