Php 验证失败时显示flash消息(图像验证)(laravel)
我想在验证失败时显示一条flash消息。 目前验证工作正常,但flash消息不起作用。 我怀疑我的病情是否有问题Php 验证失败时显示flash消息(图像验证)(laravel),php,laravel,laravel-5.2,Php,Laravel,Laravel 5.2,我想在验证失败时显示一条flash消息。 目前验证工作正常,但flash消息不起作用。 我怀疑我的病情是否有问题 public function update_avatar(Request $request,$username){ $this->validate($request,[ 'avatar' => 'mimes:jpeg,bmp,png|required' ]); if($request['avatar']==null){ \Session::f
public function update_avatar(Request $request,$username){
$this->validate($request,[
'avatar' => 'mimes:jpeg,bmp,png|required'
]);
if($request['avatar']==null){
\Session::flash('message','Please choose a file first.');
\Session::flash('alert-class', 'alert-warning');
return redirect()->back();
}
if($request->hasFile('avatar')){
$avatar = $request->file('avatar');
$filename = time(). '.' . $avatar->getClientOriginalExtension();
Image::make($avatar)->save('assets/src/uploads/avatars/' . $filename);
$user = User::where('username', $username)->first();
$user->avatar = $filename;
$user->update();
}
return redirect()->route('myplace',['username' => $user->username]);
}
编辑:
新增表格代码:
<form enctype="multipart/form-data" action="{{route('profile',['username'=>$user->username])}}" method="post">
<input type="file" size="15px" name="avatar" >
<button type="submit" name="avatar1" class="col-md-6 col-xs-6 " value="upload" style="margin-top: 20px; width: 78px !important; " >upload</button>
<input type="hidden" value="{{ csrf_token() }}" name="_token">
</form>
上传
当前,您的请求在验证时失败。因此,要么使用内置于laravel的验证,要么在flash会话中使用if语句。
如果您的请求不包含化身,那么由于验证失败,它将永远不会到达您的If语句
如果您确实想在验证中创建自定义消息,请查看链接。只需尝试将
FlashMessage
放在else中,然后尝试此操作
希望能有帮助
public function update_avatar(Request $request,$username){
$validator = Validator::make($request->all(), [
'avatar' => 'mimes:jpeg,bmp,png|required'
]);
if($validator->fails()){
\Session::flash('message','Please choose a file first.');
\Session::flash('alert-class', 'alert-warning');
return redirect()->back();
}
if($request->hasFile('avatar')){
$avatar = $request->file('avatar');
$filename = time(). '.' . $avatar->getClientOriginalExtension();
Image::make($avatar)->save('assets/src/uploads/avatars/' . $filename);
$user = User::where('username', $username)->first();
$user->avatar = $filename;
$user->update();
}
return redirect()->route('myplace',['username' => $user->username]);
}
然后用if语句检查头像是否包括在内(正如您已经做的那样),以及它是否是RouteCollection.php第218行中接受的数据类型MethodNotAllowedHttpException中的一种:您是在使用
ResourceController
还是手动定义了此更新方法?我更改了路由,使其仍然不起作用。更新方法由我们手动定义。