验证后我想传递一些额外的数据来查看。但是,我无法发送它。
我的 Controller 就像,
public function test()
{
$validator = Validator::make(
request()->all(),
[ 'ziptest' => 'regex:/^([0-9]{3}-[0-9]{4})$/']
);
$errors = $validator->errors();
if($errors->any()) {
return back()
->withErrors($errors)
->withTitle('Data From Controller')
->withInput();
}
return 'success';
}
在我的 Blade 中,我想检查标题是否通过。所以在我的 Blade View 中我有
@if($errors->any())
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
@endif
@if(isset($title))
<p>{{ $title }}</p>
@endif
但是,错误部分显示正常。但不是标题。为什么它不起作用?
我也尝试过用这种方式发送标题。
return back()->withErrors($errors)
->with('title','Data From Controller')
->withInput();
它也不起作用。
我在 SO 中进行了搜索,发现了几个有关将数据从 Controller 传递到 View 的类似问题。然而,我的情况有点不同。
最佳答案
在您的示例中,您将重定向回之前的位置。当您使用 with*
进行重定向时,信息会闪现到 session 中,而不是像您返回 View 那样直接提供给 View 。
要使其与您的示例配合使用,您必须检查 session('title')
以从重定向中获取闪烁的标题。
关于laravel - 验证后如何传递额外数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55683092/