当我尝试提交数据时,我收到一条无错误消息,当我检查与此问题相关的问题时,他们说这是路由方法,我必须使用POST而不是GET但我已经使用POST功能。问题是什么?
对于id部分,我已经使用dd进行了检查,它就在那里,但为什么我在查看页面源时仍然获得user_id的空值。
关系:personal_info hasOne清单,使用user_id作为FK
checklistController:
public function checklist(Request $request){
$checklist = new checklist;
$personal_info = new personal_info;
$checklist->check_nric = $request->input('check_nric');
$checklist->remark_nric = $request->input('remark_nric');
$id = $request->user_id;
$id= personal_info::find($id);
$id->checklists()->save($checklist);
return redirect('/home');
}
public function getChecklist(Request $request,$id){
//$data0 = personal_info::whereDoesntHave('checklists')->get();
$data0 = personal_info::where('id',$id)->get();
if(count($data0)>0){
return view('checklist1',compact('data0'));
}else{
return view('checklist1');
}
}
public function showChecklist(){
$data = DB::table('personal_infos')->where('personal_infos.deleted_at', NULL)->get()->sortByDesc('created_at');
if(count($data)>0){
return view('checklist',compact('data'));
}
else{
return view('checklist',compact('data'));
}
}
checklist1.blade.php
@foreach($data0 as $value)
<form class="form-horizontal" method="post" action="{{ url('/checklist/'.$value->user_id) }}">
{{ csrf_field() }}
<input type="hidden" name="user_id" value="{{$value->user_id}}">
@endforeach
<div class="row">
<label class="col-md-2"><b>NRIC:</b></label>
<div class="col-md-6">
<input type="radio" name="check_nric" value="Yes"> Yes<br>
<input type="radio" name="check_nric" value="No"> No<br>
</div>
</div>
<div class="row">
<label class="col-md-2"><b>NRIC Remarks:</b></label>
<div class="col-md-6">
<input type="text" name="remark_nric" class="form-control">
</div>
</div>
<div class="col-md-6-offset-2">
<input type="submit" class="btn btn-primary" value="Save">
</div>
</form>
路线:
Route::get('/checklist', 'checklistController@showChecklist');
Route::get('/user/showchecklist/{id}/checklist', 'checklistController@getChecklist');
Route::post('/checklist/{id}', 'checklistController@checklist');
答案 0 :(得分:0)
我猜你的$ data0没有名为“user_id”的属性;
我会这样做:
$data0 = personal_info::where('id',$id)->get();
// make sure count($data0) is a 'TRUE' result
dump(count($data0));
// make sure $data0 "user_id" attribute is not empty
dd($data0)
如果你表明这两个结果将提出问题清楚;
抱歉我的英语不好,但我非常想帮助你。
BTW ,如果您只有一条数据,请使用 - &gt; first()而不是 - &gt; get()
像这样:
的 PHP 强>
$data0 = personal_info::where('id',$id)->first();
if(!$data0){
abort(404)
}
return view('checklist1',compact('data0'));
<强>叶片强>
<form class="form-horizontal" method="post" action="{{url('/checklist/'.$data0->user_id) }}">
{{ csrf_field() }}
<input type="hidden" name="user_id" value="{{$data0->user_id}}">
...
答案 1 :(得分:0)
如果您在使用compact时遇到困难,为什么不将其指定为数组,因为您只需在模板文件中使用变量“$ value”。
<强> checklistController:强>
public function checklist(Request $request) {
$checklist = new checklist;
$personal_info = new personal_info;
$checklist->check_nric = $request->input('check_nric');
$checklist->remark_nric = $request->input('remark_nric');
$id = $request->user_id;
$id= personal_info::find($id);
$id->checklists()->save($checklist);
return redirect('/home');
}
public function getChecklist(Request $request,$id) {
//$data0 = personal_info::whereDoesntHave('checklists')->get();
$data0 = personal_info::where('id', $id)->first();
if (count($data0)>0) {
return view('checklist1', ['user_id' => $data0->user_id]);
} else {
return view('checklist1');
}
}
<强> checklist1.blade.php:强>
<form class="form-horizontal" method="post" action="{{ url('/checklist/'. $user_id) }}">
{{ csrf_field() }}
<input type="hidden" name="user_id" value="{{ $user_id }}">
<div class="row">
<label class="col-md-2"><b>NRIC:</b></label>
<div class="col-md-6">
<input type="radio" name="check_nric" value="Yes"> Yes<br>
<input type="radio" name="check_nric" value="No"> No<br>
</div>
</div>
<div class="row">
<label class="col-md-2"><b>NRIC Remarks:</b></label>
<div class="col-md-6">
<input type="text" name="remark_nric" class="form-control">
</div>
</div>
<div class="col-md-6-offset-2">
<input type="submit" class="btn btn-primary" value="Save">
</div>
</form>
答案 2 :(得分:0)
尝试并玩游戏后,似乎通过删除foreach循环并将user_id更改为id,它可以解决问题。我不知道为什么,如果有可能,有人可以向我解释一下?
<form class="form-horizontal" method="post" action="{{ url('/checklist/'.$data0->id) }}">
{{ csrf_field() }}
<input type="hidden" name="user_id" value="{{$data0->id}}">