2017-11-10 1 views
1

보모 예약 시스템을 만들고 있습니다. 예약 후 24 시간 동안 보모를 보려는 이메일을 학부모에게 보냅니다. 학부모에게 URL을 보내고 클릭하면 유모를 볼 수 있습니다. 다른 모든 것은 URL 외에도 작동합니다. URL이 만료되어야 24 시간 내에 말할 수 있습니다. URL에 토큰을 전달해야한다는 것을 알고 있지만 어떻게 데이터베이스 디자인을 사용해야합니까? 어떻게 토큰을 기반으로 URL을 만료시킬 수 있습니까?Laravel URL 만료일

어떤 조언을 주시면 감사하겠습니다

+0

'created_at' 날짜가있는 토큰 테이블을 가지고 있고 누군가가 페이지에 액세스하려고 시도한 후'created_at'가 24 시간 이내에 있지 않은지 확인하십시오. 이렇게하려면 여러 가지 방법 중 하나입니다. – apokryfos

답변

3

는 당신이 필요로하는 것이다, 예약 표가 있다고 가정하자 적어도 다음 필드

ID, user_id, nanny_id, created_at 

또는 user_id는 "부모 사용자가"비슷한, 그리고 nanny_id은 예약 된 보모를 말합니다. 그런 경우 created_at 필드를 사용하여 예약시기를 결정할 수 있습니다.

public function review($booking_id) 
{ 
    $booking = Booking::find($booking_id); 
    if (Carbon::now()->greaterThan($booking->created_at->addDay())) { 
     // the booking is more than 24 hours ago 
     return "sorry you cannot review anymore."; 
    } 
    return "Please review the Nanny"; 
} 

그런 식으로 당신이 토큰 등으로 별도의 테이블이 필요하지 않을 : 당신은 booking_id

Route::get('/review/{booking_id}', ['uses' => '[email protected]', 'as' => 'booking.review']); 

다음 컨트롤러 내에서, 당신은 단순히 것을 포함하여 부모에 특정 링크를 보낼 수 있습니다 물론 더 유연한 링크가 필요한 경우 만료 시간이 다를 수있는 특정 작업에 대한 테이블을 추가하는 것이 좋습니다.

1

일부 URL에 토큰을 전달하는 것이 좋은 해결책이라고 생각합니다. 작성 날짜, 만기일 및 토큰의 상태를 지정하는 토큰에 대한 모델 (및 테이블)을 작성할 수 있습니다. 유효 기간이 만료 된 경우 URL을 더 이상 사용할 수 없습니다.

이 aproach가 도움이되기를 바랍니다.