php - 函数 App\Http\Controllers\TransactionsController::store() 的参数太少,通过了 1 个,预期正好有 2 个
问题描述
我有一个错误说:
函数 App\Http\Controllers\TransactionsController::store() 的参数太少,当我尝试在 TransactionsController 中创建事务并更新用户帐户时,1 个已通过,TransactionsController::store 中恰好有 2 个预期
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use App\Http\Requests\TransactionsRequest;
use App\Traits\MakeTransactions;
use App\User;
use App\Transaction;
use DB;
class TransactionsController extends Controller
{
use MakeTransactions;
public function create()
{
$accno = auth()->user()->accno;
$account = DB::table('users')
->join('accounts', 'users.accno', '=', 'accounts.accno')
->select('users.*', 'accounts.*')
->get();
return view('dashboard.user.make_a_transfer.create', compact('account'));
}
public function store(TransactionsRequest $requestFields,$id)
{
$transactions = $this->Transfer($requestFields);
$account = Account::find($id);
$bal = $account->amt_paid + $transctions->amt;
$account->total = $bal;
$account->save();
return redirect('/make_transfer')->with('success', 'Transaction has been made');
}
public function saveTransaction($data)
{
return true;
}
}
我的路线网络,PHP
Route::get('/make_transfer', 'TransactionsController@create')->name('make_transfer');
Route::post('/create/make_transfer',['as'=>'transactions.store','uses'=>'TransactionsController@store']);
Route::get('/account_details', 'TransferController@details')->name('account_details');
我正在使用 create.blade.php 文件;
@extends('../../../layouts/dashboard')
@section('content')
<div class="page-wrapper">
<div class="page-breadcrumb">
<div class="row">
<div class="col-12 d-flex no-block align-items-center">
<h4 class="page-title"></h4>
<div class="ml-auto text-right">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="#">Home</a></li>
<li class="breadcrumb-item active" aria-current="page">Make Transfer</li>
</ol>
</nav>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="card">
<div class="card-body wizard-content">
<h4 class="card-title">Make Bank Transfers</h4>
<h6 class="card-subtitle"></h6>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
<br />
@endif
<form id="example-form" action="/create/make_transfer/{id}" method="POST" class="m-t-40">
<div>
@csrf
<div class="form-group">
<label for="reciever_name">Reciever Name:</label>
<input type="text" class="form-control" name="reciever_name" value="" />
</div>
<div class="form-group">
<label for="reciever_bank">Reciever Bank:</label>
<input type="text" class="form-control" name="reciever_bank" value="" />
</div>
<div class="form-group">
<label for="reciever_accno">Reciever Account Number:</label>
<input type="text" class="form-control" name="reciever_accno" value="" />
</div>
<div class="form-group">
<label for="routing_no">Routing Number:</label>
<input type="text" class="form-control" name="routing_no" value="" />
</div>
<div class="form-group">
<label for="amt">Amount:</label>
<input type="text" class="form-control" name="amt" value="" />
</div>
<div class="form-group">
<label for="fund_option">Fund Options:</label>
<select name="fund_option">
<option value="">Select Option</option>
<option value="Domestic">Domestic Transfer</option>
<option value="Local">Local Transfer</option>
<option value="Offshore">International Transfer</option>
</select>
</div>
<div class="form-group">
<label for="description">Description:</label>
<textarea class="form-control" name="description" value=""></textarea>
</div>
<button type="submit">Make Transfer</button>
<section>
<input id="acceptTerms" name="acceptTerms" type="checkbox" class="required">
<label for="acceptTerms">I agree with the Terms and Conditions.</label>
</section>
</div>
</form>
</div>
</div>
</div>
在用户提出转移请求后,我需要帮助使用$id更新帐户表。
解决方案
public function store(TransactionsRequest $requestFields,$id)
因此,您的 Function 需要两个参数,一个$requestFields
是您的函数,毫无疑问是 where is $id
。您没有将 $id 传递给函数,
为什么我这么说是因为当我检查你的路线时,你没有传递任何名为 id 的参数。
Route::post('/create/make_transfer',['as'=>'transactions.store','uses'=>'TransactionsController@store']);
所以我建议你检查你是否为期望参数构建了你的程序,或者你只是从表单请求中使用它。
也许您的路线应该如下所示
Route::post('/create/make_transfer/{id}',['as'=>'transactions.store','uses'=>'TransactionsController@store']);
现在当你调用这条路线时,你必须像下面这样调用它
route('transactions.store',['id'=>$yourID])
推荐阅读
- java - IMAPFolder getSortedMessages 不能与 Liferay/Tomcat 一起使用,但可以与常规 Java 应用程序一起使用
- javascript - vuex 持久化状态不会随着全局突变而更新
- matlab - 将数据框保存到 mat-File
- css - 如何阻止我的按钮越过导航栏?
- python - 为什么 Python file.write() 会意外地在每一行添加一个换行符?
- python - Series.groupby(column) 等效于 DataFrame.groupby(column) 的语法是什么?
- javascript - 如何使用键盘箭头在下拉菜单中导航
- c# - C# 如何使用查询语法在 Linq 选择语句中使用变量
- python - 转换 json 字典
- sql - 确定过去 30 天内某个特定字段发生更改的时间。如果在另一个表中找到插入记录