【问题标题】:Laravel Auth - Redirect User to different url from function validator() after validation failsLaravel Auth - 验证失败后将用户重定向到函数验证器()的不同网址
【发布时间】:2017-08-11 21:10:49
【问题描述】:

mobile_no 的唯一验证失败后,我试图将用户重定向到不同的页面

use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
use App\User;
use App\Http\Controllers\Controller;

class RegisterController extends Controller
    {
        use RegistersUsers;

        protected function validator(array $data){
            $validator = Validator::make($data, $rules, $messages);
            // If unique validation fails
            if($validator->fails()){ 
                $failed = $validator->failed();
                // if failed because unique mobile number validation rule
                if(count($failed) == 1){
                    foreach ($failed as $key => $value) {
                        if($key == 'mobile_no'){
                            if(count($value) == 1 && isset($value['Unique'])){
                                return redirect('/verify');
                            }
                        }
                    }
                }
            return redirect('/somepage');
            }
        return $validator;
    }
}

当我尝试这样做时,它给出了错误

BadMethodCallException in RedirectResponse.php line 218:
Method [validate] does not exist on Redirect.

如何重定向到其他页面?我错过了什么吗?

【问题讨论】:

  • 在您的控制器中添加了 use Validator
  • 这是您的确切代码吗?错误消息和您的代码似乎没有对齐。
  • @linktoahref 抱歉!是伪代码,导入我已经添加了,我会改代码
  • @Samsquanch 我编辑了代码
  • 您还没有在 $validator = Validator::make($data, $rules, $messages); 中指定 $rules$messages 数组跨度>

标签: php laravel validation laravel-5.3 laravel-authorization


【解决方案1】:

validator 方法应该返回一个验证器。您看到的错误是因为您返回了一个 Redirect 响应,并且一些代码假定您返回一个 Validator 并在其上调用 $validator->validate()

实际调用可以在RegistersUsers trait找到。

您需要改为抛出 HttpResponseException。您的异常处理程序应该捕获这些并相应地呈现响应;在这种情况下执行重定向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    • 2013-11-05
    • 1970-01-01
    相关资源
    最近更新 更多