我尝试验证表单中的某些数据,并将用户重定向到包含任何错误的页面(如果有)。我的代码没有重定向到任何路由。我所有路由的路由都能正常工作。我用Input :: all()回显了输入,它确实有用户输入。验证器也可以。我不确定究竟是什么阻止Redirect :: route工作
public function postPurchase()
{
$validator = Validator::make(Input::all(), array(
'condition' => 'required',
'memory' => 'required',
'color' => 'required',
'accessories' => 'required',
'shipping' => 'required'
));
// $input = Input::all();
// dd($input);
if ($validator->fails()) {
// echo "string";
return Redirect::route('home');
} else {
echo "this succedded";
}
//Get prices, item id, etc and send user to checkout page
// echo "Get prices, item id, etc and send user to checkout page";
}
这是postPurchase方法之前的代码:
public function getPurchase()
{
return View::make('general.purchase');
}
public function getCheckout()
{
return View::make('general.checkout');
}
public function postPurchaseCheck()
{
$input = Input::all();
$this->input = $input;
if (Input::get('buy')) {
$this->postPurchase();
}
elseif (Input::get('cart')) {
$this->postAddCart();
}
}
答案 0 :(得分:2)
你打电话给这个功能 - 但是你没有回复'给予回复的重定向。
更改
if (Input::get('buy')) {
$this->postPurchase();
}
到
if (Input::get('buy')) {
return $this->postPurchase();
}
答案 1 :(得分:2)
尝试更新此
if (Input::get('buy')) {
return $this->postPurchase();
} elseif (Input::get('cart')) {
return $this->postAddCart();
}
和
if ($validator->fails()) {
// echo "string";
return Redirect::to('home');
} else {
echo "this succedded";
}
也不要忘记在路线文件中定义
答案 2 :(得分:0)
更改postPurchaseCheck()方法以返回$ this-> postPurchase()返回的内容。因为你在内部调用postPurchase()方法但postPurchaseCheck()方法发生了post,所以重定向必须由处理POST请求的方法返回
public function postPurchaseCheck()
{
$input = Input::all();
$this->input = $input;
if (Input::get('buy')) {
return $this->postPurchase();
}
elseif (Input::get('cart')) {
return $this->postAddCart();
}
}