尝试捕获异常并使用参数重定向

时间:2016-03-09 00:35:18

标签: php laravel redirect parameters exception-handling

我在laravel btw工作。

在控制器中,我在try / catch中有一些逻辑。逻辑是按ID查找用户。如果搜索到错误的ID,我想捕获并刷新页面,并显示错误消息,例如“该用户ID不存在”。

我知道我可以使用的三种方法是:back()Redirect::to('users')redirect()->route('users')

首先,我应该使用哪个?

其次,我已经尝试了每一个,但我得到的错误信息或者不是我想要的行为。

每个

的错误消息

back()

我什么都没看到。我重定向到同一页面就好了。但是我使用back()->withInput(['error' => $error])传递的数据没有显示在页面上。我的模板中有{{isset($error) ? $error : ''}},等待设置$ error变量。有没有不同的方法来做到这一点?更好的方式?

redirect()->to('users')

这与back()类似,因为它会重定向我,但我似乎无法将数据传递给页面。

redirect()->route('users')

这与back()类似,因为它会重定向我,但我似乎无法将数据传递给页面。

我想这是一个简单的问题。我刚接触php和laravel并且可以使用一点方向。

谢谢!

3 个答案:

答案 0 :(得分:1)

使用输入验证如下所示

'id' => 'exists:users,id'

然后你可以做

return redirect('users')->withError($validator)

在登录表单中,您可以按

显示未找到电子邮件的消息
$errors->first('id')

答案 1 :(得分:0)

redirect()->route('users')->with('error', "I have a error");

Session::get('error')

答案 2 :(得分:0)

您可以使用任何您想要的方法,我建议您使用back()

要传递错误消息,我正在使用:

Session::flash('error', 'Wrong ID')

Blade模板中,我使用的是:

@if (Session::has('error'))
    <div class="alert alert-warning" align="center">{{ Session::get('error') }}</div>
@endif

完美无缺。