단일 API 호출 (웹 사이트의 다양한 단계에서 사용자 여정)을 사용하여 특정 열을 업데이트하고 싶습니다. 각 스테이지 크로스 후에 우리는 그의 여정을 저장해야합니다.
public function updateUserJourney(Request $request){
var_dump('inside jouney update');
$journeyObj = UserJourny::find($request->session);
switch($request){
case 'details_submitted':
$journeyObj->details_submitted = $request->details_submitted;
break;
case 'has_seen_plans':
$journeyObj->has_seen_plans = $request->has_seen_plans;
break;
case 'has_compare':
$journeyObj->has_compare = $request->has_compare;
break;
case 'has_seen_plan_details':
$journeyObj->has_seen_plan_details = $request->has_seen_plan_details;
break;
case 'has_seen_proposal':
$journeyObj->has_seen_proposal = $request->has_seen_proposal;
break;
case 'submitted_proposal':
$journeyObj->submitted_proposal = $request->submitted_proposal;
break;
}
$journeyObj->save();
var_dump("field updated");
}
이 함수가 호출되면 세션 ID와 하나의 특정 필드 만 업데이트되어야합니다. 예를 들면, 요청에이 될 수 has_seen_proposal 또는 submitted_proposal .
더 좋은 방법이 있습니까?
나는 오류에 직면했다 Call to a member function save() on null
switch 문이 작성된 방식은 전혀 실행되지 않는 것 같습니다. 대신 당신은 할 수 있습니다
public function updateUserJourney(Request $request)
{
$userJourny = UserJourny::where('session_id', $request->session_id)
->firstOrFail();
$stages = [
'details_submitted',
'has_seen_plans',
'has_compare',
'has_seen_plan_details',
'has_seen_proposal',
'submitted_proposal',
];
foreach($stages as $stage) {
if($request->has($stage) && $request->filled($stage)) {
$userJourny->update([$stage => $request->input($stage)]);
}
}
//Get a fresh copy of the record from database after update
dd($userJourny->fresh());
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다