Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Laravel-如何在表中保存记录后立即更新表_Mysql_Laravel - Fatal编程技术网

Mysql Laravel-如何在表中保存记录后立即更新表

Mysql Laravel-如何在表中保存记录后立即更新表,mysql,laravel,Mysql,Laravel,在我的Laravel-5.8中,我有这张桌子 CREATE TABLE `appraisal_goal_types` ( `id` int(11) NOT NULL, `name` varchar(200) NOT NULL, `parent_id` int(11) DEFAULT NULL, `max_score` int(11) DEFAULT 0, ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 然后我创建了这个控制器来将记录存储在另一个表中 pu

在我的Laravel-5.8中,我有这张桌子

CREATE TABLE `appraisal_goal_types` (
 `id` int(11) NOT NULL,
 `name` varchar(200) NOT NULL,
 `parent_id` int(11) DEFAULT NULL,
 `max_score` int(11) DEFAULT 0,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
然后我创建了这个控制器来将记录存储在另一个表中

public function store(StoreAppraisalGoalRequest $request)
{  
    $appraisalStartDate = Carbon::parse($request->appraisal_start_date);
    $appraisalEndDate = Carbon::parse($request->appraisal_end_date);        
    $userCompany = Auth::user()->company_id;
    $employeeId = Auth::user()->employee_id;
    $identities = DB::table('appraisal_identity')->select('id','appraisal_name')->where('company_id', $userCompany)->where('is_current', 1)->first();
    try {
        $goal = new AppraisalGoal();
        $goal->goal_type_id             = $request->goal_type_id;
        $goal->appraisal_identity_id    = $request->appraisal_identity_id;
        $goal->employee_id              = $employeeId;   //$request->employees_id
        $goal->weighted_score           = $request->weighted_score;
        $goal->goal_title               = $request->goal_title;
        $goal->goal_description         = $request->goal_description;
        $goal->company_id               = Auth::user()->company_id;
        $goal->created_by               = Auth::user()->id;
        $goal->created_at               = date("Y-m-d H:i:s");
        $goal->is_active                = 1;

        if ($request->appraisal_doc != "") {
            $appraisal_doc = $request->file('appraisal_doc');
            $new_name = rand() . '.' . $appraisal_doc->getClientOriginalExtension();
            $appraisal_doc->move(public_path('storage/documents/appraisal_goal'), $new_name);
            $goal->appraisal_doc = $new_name;
        }                      
        $goal->save();    
        $parentids = DB::table('appraisal_goal_types')->select('parent_id')->whereNotNull('parent_id')->where('company_id', $userCompany)->where('id', $goal->goal_type_id)->first();
        $parentid = $parentids->id;
        $goal->update(['parent_id' => $parentid]);  
}
记录保存后,我想快速查询评估\目标\类型

$parentids = DB::table('appraisal_goal_types')->select('parent_id')->whereNotNull('parent_id')->where('id', $goal->goal_type_id)->first();
$parentid = $parentids->id;
$goal->update(['parent_id' => $parentid]);  
并更新记录

我只需要一排答案是正确的。我使用了上面的代码,但是什么都没有发生

我如何解决这个问题

谢谢你

像这样试试

$parentids = DB::table('appraisal_goal_types')->select('parent_id')->whereNotNull('parent_id')->where('company_id', $userCompany)->where('id', $goal->goal_type_id)->first();
    $parentid = $parentids->id;
    $goal->parent_id = $parentid;
    $goal->save();
$parentids = DB::table('appraisal_goal_types')->select('parent_id')->whereNotNull('parent_id')->where('company_id', $userCompany)->where('id', $goal->goal_type_id)->first();
$parentid = $parentids->id;
AppraisalGoal::where('id', $goal->id)->update(['parent_id' => $parentid]);
还有另一种解决办法,像这样

$parentids = DB::table('appraisal_goal_types')->select('parent_id')->whereNotNull('parent_id')->where('company_id', $userCompany)->where('id', $goal->goal_type_id)->first();
    $parentid = $parentids->id;
    $goal->parent_id = $parentid;
    $goal->save();
$parentids = DB::table('appraisal_goal_types')->select('parent_id')->whereNotNull('parent_id')->where('company_id', $userCompany)->where('id', $goal->goal_type_id)->first();
$parentid = $parentids->id;
AppraisalGoal::where('id', $goal->id)->update(['parent_id' => $parentid]);

两者都会起作用。如果你解决了问题,请告诉我,为什么不在插入目标之前获取家长id?