2017-01-29 3 views
0

사용자가 다른 사용자를 거부 할 수있는이 기능이 있습니다.몇 시간 후에 특정 기능을 실행하는 방법은 무엇입니까?

public function rejectPersonalUser($id){ 
     $user = PersonalUser::findOrFail($id); 
     $user->approved = 0; 
     $user->business_user_id = NULL; 
     $user->save(); 

     return redirect()->back()->withFlashMessage('User has been rejected successfully!!'); 
    } 

이제 원하는 것은 다른 기능을 호출하지 않으면 7 일 후에 다른 사용자를 거부하는지 확인하는 것입니다.

public function setUser($id){ 
    $user = PersonalUser::findOrFail($id); 
    if($user->approved == 0 && $user->business_user_id != NULL){ 
     $user->approved = 0; 
     $user->business_user_id = NULL; 
     $user->save(); 
    } 
} 

답변

1

일정 기간 후에 실행하려면 Task Scheduling을 사용할 수 있습니다. 당신이 매개 변수를 삽입하고 거기에서 사용자를 호출하지 않는 함수를 호출 할 수있는 사용자의 요구에

$schedule->call(function() { 
    //your block of codes here.. 
})->weekly()->mondays()->at('13:00'); 

또는 더 구체적으로 : 같은

당신은 사용할 수 있습니다.

$schedule->call(function() { 
//call someScheduleTaskForUser() from here. 
})->weekly()->mondays()->at('13:00'); 


public function someScheduleTaskForUser() { 
    //call the setUser() function from here... 
} 

// This function could reside somewhere. 
public function setUser($id){ 
    $user = PersonalUser::findOrFail($id); 
    if($user->approved == 0 && $user->business_user_id != NULL){ 
     $user->approved = 0; 
     $user->business_user_id = NULL; 
     $user->save(); 
    } 
} 
+0

어떻게이 $ id를 $ schedule에 전달할 수 있습니까? – uzhas

+0

@uzhas 의존성없이 함수를 호출하고 거기에서'user_id'를 가져 와서'setUser'를 전달할 수 있습니다. – PaladiN

관련 문제