有一种方法可以在eloquent上使用IF语句吗?
我有一张名为'发票' ..
invoices(invoiceId,debt,status)
状态表示发票是否已付款,债务是发票上的债务。 我问是否有一种快速的方式来更新状态,以便我付款时..
if invoice.debt = 0 then invoice.status = 0
else invoice.status = 1
我正在使用laravel 5.3。谢谢!
答案 0 :(得分:0)
您似乎正确地走了,
您可以这样做:
$invoice = Invoice::find(1);
$status = ($invoice->debt == 0) ? 0 : 1;
$invoice->status = $status;
$invoice->save();
希望这有帮助!
答案 1 :(得分:0)
使用mutators。
public function setDebtAttribute($debt)
{
$this->attributes['debt'] = $debt;
$this->attributes['status'] = $debt ? 1 : 0;
}