为什么我的控制器不能在laravel中工作(Why my controller not working in laravel)

编程入门 行业动态 更新时间:2024-10-25 19:38:16
为什么我的控制器不能在laravel中工作(Why my controller not working in laravel)

我的工作方式类似于社交媒体应用程序...但如果不能用于状态上传,请在我的控制器中使用。 但文件和视频uload工作得很好。 什么是正确的格式。 这是我的控制器

public function getclass(Request $ request){

if (Input::has('post_comment')) { $status=Input::get('post_comment'); $commentBox=Input::get('comment_text'); $selectedStatus=Status::find($status); $selectedStatus->comments()->create([ 'comment_text'=>$commentBox, 'user_id'=>Auth::user()->id, 'status_id'=>$status ]); Flash::message('Your comments has been posted'); return redirect(route('class')); } if(Input::has('status-text')) { $text=e(Input::get('status-text')); $rules = [ 'status_text'=>'required|string', ]; $validator = Validator::make($request->all(), $rules); if(Input::hasFile('status_image_upload')) { $rules['status_image_upload'] = 'image'; $validator = Validator::make($request->all(), $rules); if($validator->fails()) { $image = $request->file('status_image_upload'); $imageName = str_random(8).'_'.$image->getClientOriginalName(); $image->move('status_images', $imageName); $userStatus = new Status(); $userStatus -> status_text = $text; $userStatus -> image_url = $imageName; $userStatus -> type = 1; $userStatus -> users_id = Auth::user()->id; $userStatus -> save(); Flash::success('Your status has been posted'); return redirect(route('class')); } } else if ($validator->fails()) { $userStatus = new Status(); $userStatus -> status_text = $text; $userStatus -> video_url = $request['video_url']; $userStatus -> type = 2; $userStatus -> users_id = Auth::user()->id; $userStatus -> save(); Flash::success('Your status has been posted'); return redirect(route('class')); } else if($validator->fails()) { $userStatus = new Status(); $userStatus -> status_text = $text; $userStatus -> type = 3; $userStatus -> users_id = Auth::user()->id; $userStatus -> save(); Flash::success('Your status has been posted'); return redirect(route('class')); } } return view('class',[ 'posts'=>status::orderBy('id','DESC')->get() ]);

}

在此控制器中,此代码无效

else if($validator->fails()) { $userStatus = new Status(); $userStatus -> status_text = $text; $userStatus -> type = 3; $userStatus -> users_id = Auth::user()->id; $userStatus -> save(); Flash::success('Your status has been posted'); return redirect(route('class')); }

I am working like a social media application... but in my controller last else if not working for status upload. but file and video uload working nicely. what is the correct format for this. here is my controller

public function getclass(Request $request) {

if (Input::has('post_comment')) { $status=Input::get('post_comment'); $commentBox=Input::get('comment_text'); $selectedStatus=Status::find($status); $selectedStatus->comments()->create([ 'comment_text'=>$commentBox, 'user_id'=>Auth::user()->id, 'status_id'=>$status ]); Flash::message('Your comments has been posted'); return redirect(route('class')); } if(Input::has('status-text')) { $text=e(Input::get('status-text')); $rules = [ 'status_text'=>'required|string', ]; $validator = Validator::make($request->all(), $rules); if(Input::hasFile('status_image_upload')) { $rules['status_image_upload'] = 'image'; $validator = Validator::make($request->all(), $rules); if($validator->fails()) { $image = $request->file('status_image_upload'); $imageName = str_random(8).'_'.$image->getClientOriginalName(); $image->move('status_images', $imageName); $userStatus = new Status(); $userStatus -> status_text = $text; $userStatus -> image_url = $imageName; $userStatus -> type = 1; $userStatus -> users_id = Auth::user()->id; $userStatus -> save(); Flash::success('Your status has been posted'); return redirect(route('class')); } } else if ($validator->fails()) { $userStatus = new Status(); $userStatus -> status_text = $text; $userStatus -> video_url = $request['video_url']; $userStatus -> type = 2; $userStatus -> users_id = Auth::user()->id; $userStatus -> save(); Flash::success('Your status has been posted'); return redirect(route('class')); } else if($validator->fails()) { $userStatus = new Status(); $userStatus -> status_text = $text; $userStatus -> type = 3; $userStatus -> users_id = Auth::user()->id; $userStatus -> save(); Flash::success('Your status has been posted'); return redirect(route('class')); } } return view('class',[ 'posts'=>status::orderBy('id','DESC')->get() ]);

}

In this controller this code not working

else if($validator->fails()) { $userStatus = new Status(); $userStatus -> status_text = $text; $userStatus -> type = 3; $userStatus -> users_id = Auth::user()->id; $userStatus -> save(); Flash::success('Your status has been posted'); return redirect(route('class')); }

最满意答案

那部分代码永远不会被执行。 因为else if block在你的代码之上,即这部分

else if ($validator->fails()) { $userStatus = new Status(); $userStatus -> status_text = $text; $userStatus -> video_url = $request['video_url']; $userStatus -> type = 2; $userStatus -> users_id = Auth::user()->id; $userStatus -> save(); Flash::success('Your status has been posted'); return redirect(route('class')); }

有点阻止它。 你在else if块中使用相同的条件。 这意味着如果上述else if条件失败则另一方也将失败。 您在两种条件下使用的validation rules也是相同的。

That portion of code will never get executed. Because the else if block above your code i.e this part

else if ($validator->fails()) { $userStatus = new Status(); $userStatus -> status_text = $text; $userStatus -> video_url = $request['video_url']; $userStatus -> type = 2; $userStatus -> users_id = Auth::user()->id; $userStatus -> save(); Flash::success('Your status has been posted'); return redirect(route('class')); }

has kind of block it. You are using the same condition in both the else if block. This means if the above else if condition fails then the other will also fail. And the validation rules you are using in both conditions are also same.

更多推荐

本文发布于:2023-08-06 19:54:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1455349.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:能在   控制器   工作   laravel   controller

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!