簡體   English   中英

Eloquent 構建器實例上不存在屬性

[英]Property does not exist on the Eloquent builder instance

我有一張events桌和一張tickets桌。 我正在嘗試通過訂購的門票減少regular_atendies中的可用門票,對於vip也是如此

這是我的商店方法:

// 創建票證

$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

否則,它是一個Builder實例,您無法從Builder訪問列。 使用->first()會將其轉換為Event實例,或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();

是多余的。 使用其中一種。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM