在学习Laravel的同时,我正在网站的后端。我在下面有这些路由器:
Route::get('/update/survivor/flag', 'SurvivorsController@flagSurvivor');
Route::get('/submit/log/flag', 'LogsController@submitFlag');
在flagSurvivor函数中我有:
public function flagSurvivor(Request $request){
$this->validate($request,[
'idFlagged' => 'required',
'idFlagger' => 'required'
]);
//Get the ids
$id = $request->input('idFlagged');
$flaggerid = $request->input('idFlagger');
//Get the flagger name
$survivors = Survivor::all();;
$flaggerSurvivor = $survivors->find($flaggerid);
//Flag a survivor
$survivors = Survivor::all();;
$flaggedSurvivor = $survivors->find($id);
$flaggedSurvivor->flags = $flaggedSurvivor->flags+1;
//Save updates
$flaggedSurvivor->save();
//Redirect
return redirect('submit/log/flag')
->with('nameFlagged', $flaggedSurvivor->name)
->with('idFlagged', $id)
->with('nameFlagger', $flaggerSurvivor->name)
->with('idFlagger' , $flaggerid);
}
除了重定向部分之外,完美地工作。将更改插入到DB后,它应该将数据发送到submitFlag函数,但它不会。它只是一直循环,直到它从太多的重定向崩溃。日志提交页面也可以正常工作:
public function submitFlag(Request $request){
$this->validate($request,[
'nameFlagged' => 'required',
'nameFlagger' => 'required',
'idFlagger' => 'required',
'idFlagged' => 'required'
]);
$flaggerid = $request->input('idFlagger');
$flaggedid = $request->input('idFlagged');
$flaggername = $request->input('nameFlagger');
$flaggedname = $request->input('nameFlagged');
//Create a new log
$flag = new Log;
$flag->log = "The survivor $flaggername($flaggerid) reported that the survivor $flaggedname($flaggedid) is contaminated";
//Save log
$flag->save();
echo "Success";
}
如果我去
localhost/submit/log/flag?idFlagger=1&idFlagged=2&nameFlagger=Matheus&nameFlagged=Tauan
它回应“成功”并将日志插入到数据库中。但我只是不明白为什么它不能通过发送flagSurvivor函数中的参数。我假设我在重定向中做错了,或者在我不知道的路线中有些东西。任何帮助表示赞赏!
事实证明,使用
return redirect('submit/log/flag?nameFlagged='.$flaggedSurvivor->name.'&idFlagged='.$id.'&nameFlagger='.$flaggerSurvivor->name.'&idFlagger='.$flaggerid);
而不是'我使用的'正常工作。
答案 0 :(得分:1)
将您的redirect
更改为操作,将with's
更改为关联数组:
//Redirect
return redirect()->action('LogsController@submitFlag', [
'nameFlagged' => $flaggedSurvivor->name,
'idFlagged' => $id,
'nameFlagger' => $flaggerSurvivor->name,
'idFlagger' => $flaggerid
]);