Php 属性在雄辩的生成器实例上不存在
我有一张活动桌和一张票桌。我正试图通过订购门票和vip门票来减少常规餐中的可用门票 这是我的存储方法: //创建票证Php 属性在雄辩的生成器实例上不存在,php,laravel,eloquent,Php,Laravel,Eloquent,我有一张活动桌和一张票桌。我正试图通过订购门票和vip门票来减少常规餐中的可用门票 这是我的存储方法: //创建票证 $ticket = new Ticket(); $ticket->userName = $request->input('userName'); $ticket->userEmail = $request->input('userEmail'); $ticket->phoneNumber = $request->input('phoneNumb
$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::find(1);
$event = Event::where('id',$ticket->event_id);
if ($ticket->regular_quantity<$event->regular_attendies) {
DB::table('events')->decrement('regular_attendies', $ticket->regular_quantity);
} elseif ($ticket->vip_quantity<$event->$vip_attendies) {
DB::table('events')->decrement('vip_attendies', $ticket->vip_quantity);
} else {
echo "error";
}
$ticket->save();
return redirect('/');
您从不执行查询。这一行:
$event = Event::where('id',$ticket->event_id);
需要关闭:
$event = Event::where('id',$ticket->event_id)->first();
// or ->firstOrFail();, etc
否则,它是一个生成器实例,您无法从生成器访问列。使用->first将其转换为事件实例或null
此外,还应:
$event = Event::find(1);
// ^ I assume this is used for testing, probably should comment it out.
$event = Event::where('id',$ticket->event_id)->first();
这是多余的。使用一个或另一个。您永远不会执行查询。这一行:
$event = Event::where('id',$ticket->event_id);
需要关闭:
$event = Event::where('id',$ticket->event_id)->first();
// or ->firstOrFail();, etc
否则,它是一个生成器实例,您无法从生成器访问列。使用->first将其转换为事件实例或null
此外,还应:
$event = Event::find(1);
// ^ I assume this is used for testing, probably should comment it out.
$event = Event::where('id',$ticket->event_id)->first();
这是多余的。使用一个或另一个。谢谢,我已经使用了它,错误消失了,但它不遵循if语句,因为即使超过了数量,它仍然会记账。您没有任何代码阻止$ticket->save发生。如果您点击else块,您只是在回显错误,但这不会停止执行。但这是另一个问题;如果这个代码修正了你的问题,请投票和/或接受它,并考虑问一个新的问题。谢谢,我已经用过了,错误消失了,但它不遵循if语句,因为它仍然是书,即使它已经超过了金额,你没有任何代码,防止$票券>保存发生。如果您点击else块,您只是在回显错误,但这不会停止执行。但这是另一个问题;如果这个代码修正了你的问题,请投票和/或接受它,并考虑提出一个新问题。