if陈述为true,即使在保存票证时不是

时间:2019-11-13 21:22:27

标签: php laravel eloquent

每个活动的参加人数最多。存储票证时,即使订购的数量超过最大数量,它仍然可以保存。

store功能:

public function store(Request $request)
    {
      // Create Ticket
      $ticket=new Ticket;
      $ticket->userName= $request->input('userName');
      $ticket->userEmail= $request->input('userEmail');
      $ticket->phoneNumber= $request->input('phoneNumber');
      $ticket->regular_quantity= $request->input('regular_quantity');
      $ticket->vip_quantity= $request->input('vip_quantity');
      $ticket->event_id=$request->route('id');
      $ticket->total= $request->input('regular_quantity') + $request->input('vip_quantity');

      $event = Event::where('id',$ticket->event_id)->first();

     if($ticket->regular_quantity<$event->regular_attendies){
         if($event->regular_attendies>0){

        DB::table('events')->decrement('regular_attendies', $ticket->regular_quantity);
         }
         else{
             echo 'no tickets';
             return redirect ('/admin');

         }

     }
      elseif($ticket->vip_quantity<$event->vip_attendies){
        if($event->vip_attendies>0){
        DB::table('events')->decrement('vip_attendies', $ticket->vip_quantity);
        }  

       else{
           return redirect ('/admin');
       }  
    }
     $ticket->save();
      return redirect('/');
    }

2 个答案:

答案 0 :(得分:1)

以下部分中有错字

elseif($ticket->vip_quantity<$event->$vip_attendies){

应该是这个

} elseif ($ticket->vip_quantity < $event->vip_attendies) {

您不小心在$之前添加了vip_attendies

更新

由于这不能解决您的代码,因此票证可以只包含regular_quantityvip_quantity还是都允许。我的猜测是它们中的任何一个都是0,空字符串或null。然后,这会弄乱您的重定向流程。

答案 1 :(得分:0)

更改

if($ticket->regular_quantity<$event->regular_attendies)

收件人

if($ticket->regular_quantity<=$event->regular_attendies)

也要更改

elseif($ticket->vip_quantity<$event->vip_attendies)

收件人

elseif($ticket->vip_quantity<=$event->vip_attendies)

当他们两个都相同时,则忽略所有内容并以任何方式保存票证,这样您就可以处理