路线工作不正常
问题描述:
我有两条路线。第一个不工作,第二个工作。如果我把第二条路线放在第一条路线上,那么它的工作和另一条路线不工作 这里是我的路线:路线工作不正常
Route::any('/class',[
'uses'=> '[email protected]',
'as'=>'class',]);
Route::any('/class',[
'uses'=> '[email protected]',
'as'=>'class',]);
这里是我的控制器:
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('classroom'));
}
}
return view('class',[
'posts'=>status::orderBy('id','DESC')->get()
]);}
另外一个
public function showclass(Request $request)
{
$randomnumber = rand(50001,1000000);
$classrooms = new Classrooms();
$classrooms->class_name = $request['class_name'];
$classrooms->subject_name = $request['subject_name'];
$classrooms->section = $request['section'];
$classrooms->class_code = $randomnumber;
$classrooms -> user_id = Auth::user()->id;
$classrooms -> save();
return view('class', array('class' => Auth::user()));
}
什么应该现在做什么?我认为我的拖车网址是相同的,这是问题。如果我是正确的,我该如何解决这个问题?
答
问题是您正在使用Route::any()
。
顾名思义,它将接受任何请求(POST
,GET
,PUT
,PATCH
,DELETE
)到/class
URI和处理与所述给定的控制器功能。
在你的情况,当你有这首:
Route::any('/class',[
'uses'=> '[email protected]',
'as'=>'class',]);
任何请求向/class
只是被getClass
处理,包括您的表单提交。
当你把其他的第一个,因为这是第一个被使用,它工作正常。
尝试将Route::any()
更改为它们实际获得的请求类型。
例如,这样的事情:
Route::get('/class',[
'uses'=> '[email protected]',
'as'=>'class',]);
Route::post('/class',[
'uses'=> '[email protected]',
'as'=>'class',]);
**注意:您不能使用相同的URI(如/class
)两个同样的方法类型(如GET
)作为第一个路径总是相匹配首先被使用。
我用它,但仍然是同样的问题。 – Shuvo
你能告诉我你的新路线吗? – James
我的新途径是:Route :: get('/ class',[ '使用'=>'classroom @ getclass', 'as'=>'class',]); Route :: post('/ class',[ 'uses'=>'classroom @ showclass', 'as'=>'class',]);现在我的错误是Undefined variable:posts(查看:C:\ xampp \ htdocs \ myproject11 \ resources \ views \ class.blade.php),但是插入了数据。 – Shuvo