im在存储一些使用axios(ReactJS)传递的数据后尝试重定向。控制器工作正常,它将数据存储在数据库中,但不会重定向到我想要的目标。
我运行良好的组件代码:
async onSubmitButton(e) {
e.preventDefault();
const formData = new FormData();
formData.append("objet", this.state.objet);
formData.append("id_p", this.state.id_p);
const response = await axios.post("/CreateCDM", formData, {
headers: {
"Content-Type": "multipart/form-data"
}
})
.catch(err => {
console.log(err);
this.setState({errorMessage: err.message});
})
}
这是我的控制器:
public function store(Request $request)
{
$dm = new DossierMedical;
$id = Auth::user()->id;
$dm->objet = $request->objet;
$dm->analyseRequis = 0;
$dm->medcine = $id;
$dm->patient = $request->id_p;
$dm->save(); //Working , i cant see that in the DB
$specialite = DB::table('specialites')
->where('nom', 'not like', 'Radiologie')
->where('nom', 'not like', 'Laboratoir d\'Analyse')
->SELECT('*')
->GET();
return view('dossierMedicale.patient.dm' ,
['objet' => $request->objet ,
'id' => $dm->id ,
'Specialite' => $specialite
]);
}
问题是我没有重定向到我想要的视图,并且我在控制台中看不到任何服务器错误。
PS:如果我使用blade.php发布数据(不带Reactjs),则会重定向我
重定向应该在ReactJS中完成,而不是在Laravel的控制器中完成。
ReactJS中的示例:
onSubmitButton(e) {
e.preventDefault();
const formData = new FormData();
formData.append("objet", this.state.objet);
formData.append("id_p", this.state.id_p);
axios.post("/CreateCDM", formData, {
headers: {
"Content-Type": "multipart/form-data"
}
})
.then(response => {
// obtain the data return from controller
const { objet, id, Specialite } = response.data;
//perform your redirection to other routes.
window.location.href = "/other-routes/";
})
.catch(err => {
console.log(err);
this.setState({errorMessage: err.message});
})
}
控制器样本:
public function store(Request $request)
{
$dm = new DossierMedical;
$id = Auth::user()->id;
$dm->objet = $request->objet;
$dm->analyseRequis = 0;
$dm->medcine = $id;
$dm->patient = $request->id_p;
$dm->save(); //Working , i cant see that in the DB
$specialite = DB::table('specialites')
->where('nom', 'not like', 'Radiologie')
->where('nom', 'not like', 'Laboratoir d\'Analyse')
->SELECT('*')
->GET();
return response()->json([
'objet' => $request->objet ,
'id' => $dm->id ,
'Specialite' => $specialite
], 200);
}