【发布时间】:2018-01-08 05:17:54
【问题描述】:
我不明白为什么 laravel Blade 没有捕捉到我的错误验证并且没有将它传递给我的视图。 详细的
- 我的刀片模板中有错误 sn-p
- 下面是我的验证,它可以正常工作
我错过了什么?
谢谢
这是我看到的 json 消息,而不是刀片模板中的消息
{ message: "给定的数据无效。", 状态码:500 }
我用这个 sn-p 让用户知道错误
@if(count($errors))
<div class="form-group">
<div class="alert alert-danger">
<ul>
@if($errors->all())
@foreach($errors->all() as $error)
<li>{{$error}}</li>
@endforeach
@endif
</ul>
</div>
</div> @endif
最后这是我正确工作的验证
$request->validate([
'email' => 'required|email|unique:subscribers|max:255',
]);
编辑:
这是web.php中的溃败
Route::post('saveemail', 'SaveSubscriberEmailController@saveEmail');
这就是方法
namespace App\Http\Controllers;
use App\subscriber;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Ramsey\Uuid\Uuid;
class SaveSubscriberEmailController extends Controller
{
public function saveEmail(Request $request)
{
$request->validate([
'email' => 'required|email|unique:subscribers|max:255',
]);
$uuid = Uuid::uuid4();
$subscriber = new subscriber();
$subscriber->email = $request->email;
$subscriber->uuid = $uuid->toString();
$subscriber->created_at = Carbon::now();
$subscriber->save();
flash('Registration conformation email has been sent. Please check your mailbox. Thank you!')->success();
return redirect()->back();
}
}
【问题讨论】:
-
你的路由应该在网络中间件中,否则会话将无法工作,这包括你的 $errors 变量
-
添加了方法和路由定义。它在 routes/web.php 中,所以它也应该在 web 中间件中
-
web.php自动在 Web 中间件中。您可以拨打php artisan routes:list查看。您应该会在 Middleware 列中的路由旁边看到web。 -
在web路由中,用
php artisan routes:list确认
标签: laravel error-handling laravel-blade