如何将用户返回到包含错误的先前URL并附加锚标记?

时间:2017-08-16 08:26:56

标签: php laravel-5

此代码可以完成我需要的一切

return back()->withInput()->withErrors($validator->errors());

接受附加锚标记,即(www.examplewebsite.com/home#anchor)。

此代码可以完成我需要的一切

return Redirect::to(URL::previous() . "#contact");

接受传递验证者的错误。

以下是上下文

的完整代码
public function contact(Request $request) {

    $input = $request->input();
    $email = $input['email'];
    $name = $input['name'];

    $validator = Validator::make(
        array(
            'name' => $name,
            'email' => $email,
            'text' => $input['text']
        ),
        array(
            'name' => 'required|min:5',
            'email' => 'required|email',
            'text' => 'required|min:5'
        )
    );

    if($validator->fails()) {

        return back()->withInput()->withErrors($validator->errors());

    } else {

        Mail::send('emails.contact', $input, function($message) use ($email, $name) {
            $message->from('auto@email.com', 'Auto');
            $message->to('example@email.com', 'Mong Goose')->subject('A Contact Form');
        });

        return Redirect::to(URL::previous() . "#contact");
    }
}

如何在一次重定向中实现以下功能:

  • 将用户发送到以前的网址

  • 将锚点附加到上一个网址

  • 发送错误

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用重定向?

return Redirect::back()->withErrors(['error', 'Error Message']);

要获取错误消息,您可以使用:

Session::has('error')

刀片模板

@if (count($errors))
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif