Php Laravel控制器:为此目的,排列代码块的最佳方法是什么
在下面的引文中,我打算实现5件事Php Laravel控制器:为此目的,排列代码块的最佳方法是什么,php,laravel,oop,controller,Php,Laravel,Oop,Controller,在下面的引文中,我打算实现5件事 从表单接收输入 检查用户是否有足够的余额,因此使用if语句 将事务记录插入数据库 更新发票表中的状态 更新状态车辆表 公共功能存储1(请求$Request,$invoice\u id) { 我得到“未定义变量:事务\u id” 当我尝试使用invoice_id时,它会运行,但只更新invoice表,不更新车辆 如果有人能告诉我如何重新排列代码以实现我的目标,我正在等待。如果你也能告诉我为什么我的车辆表没有更新,那就好了。尝试以下方法: 1.检查IF语句的条件并删
public function store1(Request $request, $invoice_id) {
$invoice = Invoice::find($invoice_id);
if (Auth::user()->amount < $request->paid_amount){
Flash::error('insufficient Balance');
return redirect(route('transactions.index'));
}
$transaction = new Transaction();
$transaction->added_on = Carbon\Carbon::now();
$transaction->pay_ref = mt_rand(10000, 99999);
$transaction->invoice_id = $request->invoice_id;
$transaction->paid_amount = $request->paid_amount;
$transaction->paid_method = 'Wallet';
$transaction->status = 1;
$transaction->invoice()->associate($invoice);
$transaction->save();
$user = User::findOrFail(Auth::id());
$user->amount = Auth::user()->amount - $transaction->paid_amount;
$user->update();
$invoice = Invoice::findOrFail($invoice_id);
$invoice->status = 1;
$invoice->update();
//$vehicle = Vehicle::findOrFail($invoice_id);
//$vehicle->status = 2;
//$vehicle->update();
//You are actually trying to get the value of vehicle with invoice_id if you want
//to get vehicle based on invoice id the it will be:
$vehicle = Vehicle::where('invoice_id',$invoice_id)->first();
$vehicle->status = 2;
$vehicle->update();
Flash::success('Transaction done successfully.');
return redirect(route('transactions.index'));
}
}
public function store1(请求$Request,$invoice\u id){
$invoice=发票::查找($invoice\u id);
如果(Auth::user()->金额<$request->已付金额){
闪存::错误(“余额不足”);
返回重定向(路由('transactions.index');
}
$transaction=新事务();
$transaction->added_on=Carbon\Carbon::now();
$transaction->pay\u ref=mt\u rand(1000099999);
$transaction->invoice\u id=$request->invoice\u id;
$transaction->paid\u amount=$request->paid\u amount;
$transaction->paid_method='Wallet';
$transaction->status=1;
$transaction->invoice()->关联($invoice);
$transaction->save();
$user=user::findOrFail(Auth::id());
$user->amount=Auth::user()->amount-$transaction->已付金额;
$user->update();
$invoice=发票::findOrFail($invoice\u id);
$invoice->status=1;
$invoice->update();
//$vehicle=vehicle::findOrFail($invoice\u id);
//$vehicle->status=2;
//$vehicle->update();
//如果需要,您实际上是在尝试获取具有发票id的车辆的价值
//要根据发票id获取车辆,将:
$vehicle=vehicle::其中('invoice_id',$invoice_id)->first();
$vehicle->status=2;
$vehicle->update();
Flash::success('事务成功完成');
返回重定向(路由('transactions.index');
}
}
在我看来,您试图通过$invoice\u id查找车辆。您不应该改用$invoice\u id吗?像这样的<代码>$vehicle=vehicle::findOrFail($vehicle\u id)或者如果您希望通过$transaction\u id查找车辆,您的查询应该更像这样:vehicle::where('transaction\u id',$transaction\u id)->first()代码>假设您已经定义了车辆和交易之间的关系,我认为我的交易控制器有问题。甚至索引上的“编辑”按钮也给我提供了事务id的未定义变量的错误。也许我必须在您的解决方案开始工作之前解决这个问题。谢谢你的贡献。多罗,非常感谢你。余额检查正在进行中。但我在想,如果有一种方法可以在插入交易之前进行余额检查,因为即使在打印余额不足的情况下,交易也会被添加,并且用户不会被记入借方,
$vehicle = Vehicle::findOrFail($transaction_id);
$vehicle->status = 2;
$vehicle->update();
public function store1(Request $request, $invoice_id) {
$invoice = Invoice::find($invoice_id);
if (Auth::user()->amount < $request->paid_amount){
Flash::error('insufficient Balance');
return redirect(route('transactions.index'));
}
$transaction = new Transaction();
$transaction->added_on = Carbon\Carbon::now();
$transaction->pay_ref = mt_rand(10000, 99999);
$transaction->invoice_id = $request->invoice_id;
$transaction->paid_amount = $request->paid_amount;
$transaction->paid_method = 'Wallet';
$transaction->status = 1;
$transaction->invoice()->associate($invoice);
$transaction->save();
$user = User::findOrFail(Auth::id());
$user->amount = Auth::user()->amount - $transaction->paid_amount;
$user->update();
$invoice = Invoice::findOrFail($invoice_id);
$invoice->status = 1;
$invoice->update();
//$vehicle = Vehicle::findOrFail($invoice_id);
//$vehicle->status = 2;
//$vehicle->update();
//You are actually trying to get the value of vehicle with invoice_id if you want
//to get vehicle based on invoice id the it will be:
$vehicle = Vehicle::where('invoice_id',$invoice_id)->first();
$vehicle->status = 2;
$vehicle->update();
Flash::success('Transaction done successfully.');
return redirect(route('transactions.index'));
}
}