我在Controller中有以下功能。
public function UpdateCountry(\App\Http\Requests\CountryRequest $request) {
$this->SaveChanges($request);
}
private function SaveChanges($request) {
if($request['CountryID'] == 0) {
$Country = new \App\Models\CountryModel();
}
else {
$Country = \App\Models\CountryModel
::where('CountryID', $request['CountryID'])->first();
}
$Country->Country = $request['Country'];
$Country->CountryCode = $request['CountryCode'];
$Country->save();
return redirect()->route('AllCountries');
}
public function AllCountries() {
$Countries = \App\Models\CountryModel::all();
return view('Country.List', array('Countries' => $Countries));
}
问题在下面一行:当我调用函数SaveChanges时,我无法看到国家列表页面,当我直接在UpdateCountry函数中编写代码时,它成功重定向路由。
return redirect()->route('AllCountries');
之前有人遇到过这个问题吗?
答案 0 :(得分:1)
您的路线由UpdateCountry
功能处理。 Laravel将根据此函数的返回值执行操作。但是,您没有从此功能返回任何内容。
您致电SaveChanges
,它会返回Redirect
个对象,但您不会从UpdateCountry
功能返回任何内容。您需要Redirect
函数中的UpdateCountry
对象,以便Laravel实际将重定向返回给客户端。
将UpdateCountry
功能更新为:
// added the return statement, so this function will return the redirect
// to the route handler.
public function UpdateCountry(\App\Http\Requests\CountryRequest $request) {
return $this->SaveChanges($request);
}
答案 1 :(得分:1)
也许你错过了$ this-> SaveChanges($ request)的回报。它必须是:
public function UpdateCountry(\App\Http\Requests\CountryRequest $request) {
return $this->SaveChanges($request);
}
我希望它适合你。