Php 函数App\Http\Controllers\transactionController::store()的参数太少,传递了1个,预期正好是2个
我遇到一个错误,该错误表示:函数App\Http\Controllers\transactioncontroller::store()的参数太少,当我尝试在TransactionController中创建事务并更新用户帐户时,传递了1个参数,而TransactionController::store中正好需要2个参数Php 函数App\Http\Controllers\transactionController::store()的参数太少,传递了1个,预期正好是2个,php,laravel,Php,Laravel,我遇到一个错误,该错误表示:函数App\Http\Controllers\transactioncontroller::store()的参数太少,当我尝试在TransactionController中创建事务并更新用户帐户时,传递了1个参数,而TransactionController::store中正好需要2个参数 <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Sup
<?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;
}
}
我使用的是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>
@extends(“../../../layouts/dashboard”)
@节(“内容”)
进行转移
银行转账
@如果($errors->any())
@foreach($errors->all()作为$error)
- {{$error}}
@endforeach
@恩迪夫
@csrf
收信人姓名:
收款银行:
收款人账号:
路由号码:
数量:
基金选择:
选择选项
国内转让
本地转移
国际转让
说明:
转帐
我同意这些条款和条件。
在用户发出转账请求后,我需要使用$id更新帐户表的帮助。
公共功能存储(TransactionRequest$requestFields,$id)
因此,您的函数需要两个参数,一个是$requestFields
,这无疑是您的函数,但$id
在哪里。您没有将$id传递给函数
为什么我这么说是因为当我检查您的路由时,您没有传递任何名为id的参数
Route::post('/create/make_transfer',['as'=>'transactions.store','uses'=>'TransactionsController@store']);代码>
因此,我建议您检查是为expect参数构建程序,还是仅从表单请求中使用它
也许你的路线应该如下所示
Route::post('/create/make_transfer/{id}',['as'=>'transactions.store','uses'=>'TransactionsController@store']);代码>
现在,当你呼叫这条路线时,你必须像下面那样呼叫它
route('transactions.store',['id'=>$yourID])
请发布您的路线。当您提出问题时,请给出完整的代码。这将有助于回答这个问题。感谢您向dump()
提供$account
和$transactions
的值。请向我解释如何使用dump()
我尝试使用dump($account)dump($transactions);像这样公共函数存储(TransactionRequest$requestFields,$id){$transactions=$this->Transfer($requestFields);$account=account::find($id);$bal=$account->amt\u paid+$transactions->amt;$account->total=$bal;$account->save();dump($account);dump($transactions);//返回重定向('/make_transfer')->带('success','Transaction has'make');}
只需像dump($account);
和dump($transactions);
一样使用,并对值进行注释。请问如何调用路由路由('transactions.store',['id'=>$yourID])
,我正在尝试使用$account=account::find($id);
从何处获取此$idI更新了问题,显示了我的create.blade.php文件,其中$id是从/create/make_transfer/{id}传递的。id是当前登录的用户id?然后从函数中删除$if,并像Auth::id()一样使用它;不要忘记在控制器顶部使用照明\Support\Facades\Auth;
@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>