ajax - 模型 [App\\User] {id} 没有查询结果
问题描述
我正在尝试使用 ajax 在 laravel 中更新我的用户,但我收到此消息No query results for model [App\User] {id}这意味着什么以及如何解决此错误
我的控制器代码是
public function update(Request $request, $id) {
$user = User::findOrFail($id);
$user->name = $request->name;
$user->phone = $request->phone;
$user->email = $request->email;
$user->country = $request->country;
$user->state = $request->state;
$user->purpose = $request->purpose;
$user->package = $request->package;
$user->months = $request->months;
$user->quantity = $request->quantity;
$user->amount = $request->amount;
$user->expiry_date = $request->expiry_date;
$user->save();
return response()->json($user);
}
我的刀片文件代码是
<form id="editFormId">
<input type="hidden" name="_token" id="token" value="{{ csrf_token() }}">
<h2>Order Information</h2>
<div class="row">
<input type="hidden" value="{{ $userinformations[0]->id }}" name="id" id="id">
<div class="col-md-3">
<div class="form-group">
<label for="package">{{ __('Package') }}</label>
<select id="package" name="package" class="form-control @error('package') is-invalid @enderror" value="{{ old('package') }}" required autocomplete="package" autofocus>
@foreach($userinformations as $userinformation)
<option value="{{ $userinformation->package }}" <?php if(isset($_GET['package']) == '{{ $userinformation->package }}') echo 'selected'; ?>>{{ ucfirst($userinformation->package) }}</option>
@endforeach
<option value="basic">Basic</option>
<option value="regular">Regular</option>
<option value="infinite">Infinite</option>
</select>
@error('package')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label for="months">{{ __('Months') }}</label>
<select id="months" name="months" class="form-control @error('months') is-invalid @enderror" value="{{ old('months') }}" required autocomplete="months" autofocus>
@foreach($userinformations as $userinformation)
<option value="{{ $userinformation->months }}" <?php if(isset($_GET['months']) == '{{ $userinformation->months }}') echo 'selected'; ?>>{{ $userinformation->months }} Months</option>
@endforeach
<option value="1">1 months</option>
<option value="4">4 months</option>
<option value="12">12 months</option>
</select>
@error('months')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label for="quantity">{{ __('Quantity') }}</label>
<select id="quantity" name="quantity" class="form-control @error('quantity') is-invalid @enderror" value="{{ old('quantity') }}" required autocomplete="quantity" autofocus>
<option value="1" selected="selected">1</option>
<option value="2">2</option><option value="3">3</option>
<option value="4">4</option><option value="5">5</option>
<option value="6">6</option><option value="7">7</option>
<option value="8">8</option><option value="9">9</option>
<option value="10">10</option>
</select>
@error('quantity')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="col-md-3 ">
<label for="amount">{{ __('Amount') }}</label>
<div class="input-group">
<span class="input-group-addon">INR</span>
<select id="amount" name="amount" class="form-control @error('amount') is-invalid @enderror" value="{{ old('amount') }}" required autocomplete="amount" autofocus>
@foreach($userinformations as $userinformation)
<option value="{{ $userinformation->amount }}" <?php if(isset($_GET['amount']) == '{{ $userinformation->amount }}') echo 'selected'; ?>>{{ $userinformation->amount }}</option>
@endforeach
<option>Select Amount</option>
<option value="2500" data-package="basic">2500</option>
<option value="4000" data-package="basic">4000</option>
<option value="7000" data-package="basic">7000</option>
<option value="3500" data-package="regular">3500</option>
<option value="7000" data-package="regular">7000</option>
<option value="12000" data-package="regular">12000</option>
<option value="15000" data-package="infinite">15000</option>
<option value="30000" data-package="infinite">30000</option>
<option value="50000" data-package="infinite">50000</option>
</select>
</div>
</div>
</div>
<hr>
<h2>Billing Information</h2>
<div class="row">
<div class="col-md-6 form-group">
<label for="name">{{ __('Name') }}</label>
<input id="name" type="text" class="form-control @error('name') is-invalid @enderror" name="name" value="{{ $userinformations[0]->name }}" required autocomplete="name" autofocus disabled>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="col-md-6 form-group">
<label for="phone">{{ __('Phone') }}</label>
<input id="phone" type="text" class="form-control @error('phone') is-invalid @enderror" name="phone" value="{{ $userinformations[0]->phone }}" required autocomplete="phone" disabled>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="row">
<div class="col-md-6 form-group">
<label for="country">{{ __('Country') }}</label>
<input id="country" type="text" class="form-control @error('country') is-invalid @enderror" name="country" value="{{ $userinformations[0]->country }}" required autocomplete="country" autofocus disabled>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="col-md-6 form-group">
<label for="state">{{ __('State') }}</label>
<input id="state" type="text" class="form-control @error('state') is-invalid @enderror" name="state" value="{{ $userinformations[0]->state }}" required autocomplete="state" autofocus disabled>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="row">
<div class="col-md-6 form-group">
<label for="purpose">{{ __('Purpose') }}</label>
<select id="purpose" class="form-control @error('purpose') is-invalid @enderror" name="purpose" value="{{ old('purpose') }}">
@foreach($userinformations as $userinformation)
<option value="{{ $userinformation->purpose }}" <?php if(isset($_GET['purpose']) == '{{ $userinformation->purpose }}') echo 'selected'; ?>>{{ $userinformation->purpose }}</option>
@endforeach
<!---option>Select Purpose</option>
<option value="parent">Parent</option>
<option value="employmee">Employmee</option---->
</select>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="col-md-6 form-group">
<label for="email">{{ __('E-Mail Address') }}</label>
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ $userinformations[0]->email }}" required autocomplete="email" disabled>
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-6 offset-md-4">
<!---button type="submit" class="btn btn-primary">
{{ __('Register') }}
</button---->
<a href="javascript:void(0)" class="btn btn-sm btn-primary float-right buy_now" data-amount="1" data-id="1">Make Payment</a>
</div>
</div>
</form>
路线是
Route::put('update/{id}', 'razorpay\PaymentController@update');
我的ajax请求是
<script>
var SITEURL = 'http://localhost:8000/update/{user}';
//alert('SITEURL');
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$('body').on('click', '.buy_now', function(e){
var totalAmount = $(this).attr("data-amount");
var product_id = $(this).attr("data-id");
var options = {
"key": "***********",
"amount": (totalAmount*100), // 2000 paise = INR 20
"name": "AddSpy",
"description": "Payment",
"image": "http://localhost:8000/frontend/images/addspy1.png",
"handler": function (response){
$.ajax({
url: SITEURL,
type: 'post',
dataType: 'json',
data: {
"_token": $('#token').val(),
razorpay_payment_id: response.razorpay_payment_id ,
totalAmount : totalAmount ,product_id : product_id,
name : $('#name').val(),
phone : $('#phone').val(),
email : $('#email').val(),
country : $('#country').val(),
state : $('#state').val(),
purpose : $('#purpose').val(),
package : $('#package').val(),
months : $('#months').val(),
quantity : $('#quantity').val(),
amount : $('#amount').val(),
password : $('#password').val(),
expiry_date : $('#expiry_date').val(),
},
success: function (msg) {
//window.location.href = 'thank-you';
}
});
},
"prefill": {
"contact": '1234567890',
"email": 'xxxxxxxxx@gmail.com',
},
"theme": {
"color": "#528FF0"
}
};
var rzp1 = new Razorpay(options);
rzp1.open();
e.preventDefault();
});
</script>
请检查我的代码并更新它。让我知道我错在哪里以及如何纠正。
提前致谢
解决方案
您必须{user}
通过要更新的所需 UserID 进行更改:
var SITEURL = 'http://localhost:8000/update/{user}';
此外,您的代码可以像这样改进:
public function update(Request $request, User $user) {
// $user = User::findOrFail($id); -- removed
$user->name = $request->name;
$user->phone = $request->phone;
$user->email = $request->email;
$user->country = $request->country;
$user->state = $request->state;
$user->purpose = $request->purpose;
$user->package = $request->package;
$user->months = $request->months;
$user->quantity = $request->quantity;
$user->amount = $request->amount;
$user->expiry_date = $request->expiry_date;
$user->save();
return response()->json($user);
}
Route::put('update/{user}', 'razorpay\PaymentController@update');
推荐阅读
- jsf - 在 org.apache.myfaces.taglib.core.ViewTag.doStartTag 出现错误 java NullPointerException(ViewTag.java:75)
- latex - Sublime Text 3:特定命令的语法高亮
- asp.net - 从 LocalSystem 拥有的 ASP.NET 站点启动的进程无法重新启动本地计算机
- angular - Angular6/Moment.js - InvalidPipeArgument / 无效日期
- dart - SSL错误阻止网站登录颤动
- angular - Angular 7 嵌套路由,组件嵌套在模块中
- c# - 如何在 Windows 窗体中更改图表类型
- continuous-integration - Azure devops CI 缺少代理作业
- python - pyomo 错误:CPLEXDirect 不支持度数表达式 None
- node.js - 如何模拟/传递使用 mocha-chai-sinon 在其中执行函数的 Nodejs 辅助实用程序