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


Trying to catch exception and redirect back with parameters

顺便说一句,我在拉拉维尔工作。

在控制器中,我在尝试/捕获中有一些逻辑。 该逻辑用于按 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 的新手,可以使用一点方向。

谢谢!

使用输入验证作为波纹管

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

然后你可以做

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

在登录表单中,您可以通过以下方式显示未找到电子邮件的消息

$errors->first('id')
你可以

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

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

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

Blade模板中,我正在使用这个:

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

完美工作。

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