【发布时间】:2020-08-03 23:42:07
【问题描述】:
我想在插入时根据 user_types 列出用户,所以我创建了两个表,每个表都有连接。每个模型 PHP 文件都有一个关系函数。我创建了 jquery 代码并创建了控制器功能,但它不起作用我不知道我在哪里犯了错误,请帮我解决这个问题。我附上了我写的所有代码和数据库。
用户类型数据库
用户数据库表
UserType Id 和 User Table usty_id 有连接
用户类型模型
<?php
namespace Asset_Management_System;
use Illuminate\Database\Eloquent\Model;
class UserType extends Model
{
public function userpermission()
{
return $this->hasMany('Asset_Management_System\UserPermission');
}
public function user()
{
return $this->hasMany('Asset_Management_System\User');
}
}
用户模型
class User extends Authenticatable
{
public function usertype()
{
return $this->belongsTo('Asset_Management_System\UserType','usty_id');
}
}
插入表格
<div class="form-group">
<label>User Type</label>
<select class="form-control select2" style="width: 100%;" id="ust_id" name="ust_id">
<option selected="selected">Select User Type</option>
@foreach($UserType as $ust)
<option value="{{$ust->id}}">{{$ust->usty_name}}</option>
@endforeach
</select>
</div>
<div class="form-group">
<label>User</label>
<select class="form-control select2" style="width: 100%;" id="user_id" name="user_id">
<option selected="selected">Select User</option>
@foreach($User as $us)
<option value="{{$us->id}}">{{$us->us_fname}} {{$us->us_lname}}</option>
@endforeach
</select>
</div>
控制器
public function show(Request $request)
{
//echo $id;
if (!$request->usty_id) {
$html = '<option value="">'.trans('global.pleaseSelect').'</option>';
} else {
$html = '';
$user = User::where('usty_id', $request->usty_id)->get();
foreach ($user as $us) {
$html .= '<option value="'.$us->id.'">'.$us->us_fname.' '.$us->us_lname.'</option>';
}
}
return response()->json(['html' => $html]);
}
还有 Jquery
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
$("#ust_id").change(function(){
$.ajax({
url: "{{ route('WorkRequest.show') }}?usty_id=" + $(this).val(),
method: 'GET',
success: function(data) {
$('#user_id').html(data.html);
}
});
});
</script>
路线
Route::get('WorkRequest/show', 'WorkRequestController@show')->name('WorkRequest/show');
这是我进入表单时遇到的错误
缺少 [Route: WorkRequest.show] [URI: WorkRequest/{WorkRequest}] 的必需参数。 (查看:C:\xampp\htdocs\Asset_Management_Laravel\resources\views\layouts\main.blade.php)
请帮我解决这个问题
【问题讨论】:
-
在路由文件中,您已将“WorkRequest/show”写为路由名称,但在 ajax 代码中写了“WorkRequest.show”。代替 '。'在 ajax 方法中使用 '/'
-
哦,谢谢,现在路由错误已修复,但 fetch 无法正常工作,请帮助我
-
请分享 web.php 代码。我猜您还为“WorkRequest”声明了使用资源方法的路由
-
是的,我也有类似 Route::resource('WorkRequest','WorkRequestController');
标签: php jquery ajax laravel laravel-5.6