2016-08-22 9 views
0

Ich habe zwei Routen. Der erste arbeitet nicht und der zweite arbeitet. Wenn ich die 2. Route zuerst einstelle, dann funktioniert sie und eine andere funktioniert nicht. Hier ist mein Weg:Route funktioniert nicht richtig

Route::any('/class',[ 
'uses'=> '[email protected]', 
'as'=>'class',]); 

Route::any('/class',[ 
'uses'=> '[email protected]', 
'as'=>'class',]); 

Hier ist mein 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('classroom')); 
      } 
    } 


return view('class',[ 
'posts'=>status::orderBy('id','DESC')->get() 
]);} 

Ein anderes

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())); 
    } 

Was jetzt zu tun? Ich denke, dass mein Tau URL dasselbe ist, das das Problem ist. Wenn ich richtig dann bin, wie kann ich dieses Problem lösen?

Antwort

0

Das Problem ist, dass Sie Route::any() verwenden.

Wie der Name schon sagt, es jede Anforderung akzeptiert (POST, GET, PUT, PATCH, DELETE) an den /class URI und Prozess, der mit der Reglerfunktion gegeben.

In Ihrem Fall, wenn Sie diese zuerst haben:

Route::any('/class',[ 
'uses'=> '[email protected]', 
'as'=>'class',]); 

Jede Anfrage an /class wird nur von getClass verarbeitet werden, einschließlich Ihrer Formulareinreichung.

Und es funktioniert gut, wenn Sie die anderen an erster Stelle wie die erste ist verwendet wird.

Try Route::any() auf die Art der Anfrage ändert sie tatsächlich bekommen.

Zum Beispiel so etwas wie diese:

Route::get('/class',[ 
'uses'=> '[email protected]', 
'as'=>'class',]); 

Route::post('/class',[ 
'uses'=> '[email protected]', 
'as'=>'class',]); 

** Hinweis: Sie können nicht die gleiche URI (zB /class) für zwei der gleichen Methode Typen (zB GET) als die erste Route würde immer übereinstimmen zuerst und benutzt werden.

+0

ich benutzte es aber immer noch das gleiche Problem. – Shuvo

+0

Können Sie mir Ihre neuen Routen zeigen? – James

+0

meine neue Route ist: Route :: get ('/ Klasse', [ 'verwendet' => 'Klassenzimmer @ getClass', 'als' => 'Klasse',]); Route :: Post ('/ Klasse', [ 'verwendet' => 'Klassenzimmer @ Showclass', 'als' => 'Klasse',]); und jetzt ist mein Fehler Undefinierte Variable: Beiträge (Ansicht: C: \ xampp \ htdocs \ MeinProjekt11 \ Ressourcen \ Ansichten \ class.blade.php) aber Daten eingefügt. – Shuvo