2017-08-14 121 views
-1

想要以新文件名克隆消息頁面。Laravel MethodNotAllowedHttpException RouteCollection.php 233行:

mynewmassagepage.blade.php

@extends('master.main') 

@section('main-content') 

    @component('master.notification') 
    @slot('size') 
    col-md-8 col-md-offset-2 
    @endslot 
    @slot('title') 
    Send new message 
    @endslot 
    @if(session()->has('errormessage')) 
    <div class="alert alert-danger"> 
     <strong>Whoops ! </strong><span>{{session()->get('errormessage')}}</span> 
    </div> 
    @endif 
    <form class="" action="{{route('sendmessagepost')}}" method="post"> 
     <div class="form-group"> 
     <label for="recipient">Recipient:</label> 
     <input type="text" name="recipient" id="recipient" value="@if($recipient !== null){{$recipient->username}}@endif" class="form-control"> 
     </div> 
     <div class="form-group"> 
     <label for="title">Title:</label> 
     <input type="text" name="title" id="title" value="{{old('title')}}" class="form-control"> 
     </div> 
     <div class="form-group"> 
     <label for="text">Text:</label> 
     <textarea name="text" class="form-control" style="resize:none" rows="8" cols="80">{{old('text')}}</textarea> 
     </div> 
     <div class="form-group"> 
     <center> 
      <button type="submit" name="button" class="btn btn-success">Send Message</button> 
     </center> 
     </div> 
     {{csrf_field()}} 
    </form> 

    @endcomponent 

@stop 

在web.php我用這個代碼:

Route::get('mynewmassagepage}','[email protected]')->name('sendmessage'); 
    Route::post('mynewmassagepage','[email protected]')->name('sendmessagepost'); 

我總是在RouteCollection.php線

MethodNotAllowedHttpException 233:

錯誤返回。我不知道我不是正確的,這是我的第一個laravel項目。

回答

0
<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use Auth; 
use App\User; 
use App\Message; 

class MessageController extends Controller 
{ 
    public function SendView($username = null){ 
     $user = Auth::user(); 
     $recipient = User::where('username',$username)->first(); 
     return view('message.send')->with([ 
     'recipient' => $recipient 
     ]); 
    } 

    public function SendPost(Request $request){ 
     if ($request->recipient == null) { 
     session()->flash('errormessage','You must enter recipient\'s username'); 
     return redirect()->back()->withInput(); 
     } 
     if ($request->text == null) { 
     session()->flash('errormessage','You must send something'); 
     return redirect()->back()->withInput(); 
     } 
     if ($request->title == null) { 
     session()->flash('errormessage','You must enter title'); 
     return redirect()->back()->withInput(); 
     } 
     $recipient = User::where('username',$request->recipient)->first(); 
     if ($recipient == null) { 
     session()->flash('errormessage','User with that username does not exist'); 
     return redirect()->back()->withInput(); 
     } 
     if ($recipient->id == Auth::user()->id) { 
     session()->flash('errormessage','You cannot send message to yourself'); 
     return redirect()->back()->withInput(); 
     } 
     $last_msg = Message::where('from',Auth::user()->id)->orderBy('created_at','desc')->first(); 
     if ($last_msg !== null) { 
     $newTime = date("Y-m-d H:i:s",time()); 
     if (Auth::user()->vendor == false) { 
      $last_time = date('Y-m-d H:i:s',strtotime('+1 minute',strtotime($last_msg->created_at))); 
      if ($newTime < $last_time) { 
      session()->flash('errormessage','You can send message every minute'); 
      return redirect()->back()->withInput(); 
      } 
     } else { 
      $last_time = date('Y-m-d H:i:s',strtotime('+10 seconds',strtotime($last_msg->created_at))); 
      if ($newTime < $last_time) { 
      session()->flash('errormessage','You can send message every ten seconds'); 
      return redirect()->back()->withInput(); 
      } 
     } 
     } 

     $m = new Message; 
     $m->uniqueid = 'ME'.str_random(28); 
     $m->to = $recipient->id; 
     $m->from = Auth::user()->id; 
     $m->title = $request->title; 
     $m->text = $request->text; 
     $m->save(); 
     return redirect()->route('messages'); 
    } 

    public function ViewReceived(){ 
     $received = Message::where('to',Auth::user()->id)->orderBy('created_at','desc')->paginate(25); 
     return view('message.received')->with([ 
     'received'=>$received 
     ]); 
    } 

    public function ViewSent(){ 
     $sent = Message::where('from',Auth::user()->id)->orderBy('created_at','desc')->paginate(25); 
     return view('message.sent')->with([ 
     'sent'=>$sent 
     ]); 
    } 
    public function ViewMessage($uniqueid){ 
     $message = Message::where('uniqueid',$uniqueid)->first(); 
     if ($message == null) { 
     return redirect()->route('messages'); 
     } 
     if (Auth::user()->id !== $message->to && Auth::user()->id !== $message->from) { 
      return redirect()->route('messages'); 
     } 
     if ($message->viewed == false && Auth::user()->id == $message->to) { 
     $message->viewed = true; 
     $message->save(); 
     } 
     return view('message.view')->with([ 
     'message'=>$message 
     ]); 
    } 
} 
0

該異常意味着您可能會向終端發送錯誤類型的請求,例如GET進入POST。或者由於名字相似,Laravel錯過了路線。

試着按照下面的例子。

Route::post('sendmessage/post',[ 
'use'=>'[email protected]', 
'as'=>'sendmessage.post' 
]}; 


<form class="" action="{{route('sendmessage.post')}}" method="post"> 
     <div class="form-group"> 
     <label for="recipient">Recipient:</label> 
     <input type="text" name="recipient" id="recipient" value="@if($recipient !== null){{$recipient->username}}@endif" class="form-control"> 
     </div> 
     <div class="form-group"> 
     <label for="title">Title:</label> 
     <input type="text" name="title" id="title" value="{{old('title')}}" class="form-control"> 
     </div> 
     <div class="form-group"> 
     <label for="text">Text:</label> 
     <textarea name="text" class="form-control" style="resize:none" rows="8" cols="80">{{old('text')}}</textarea> 
     </div> 
     <div class="form-group"> 
     <center> 
      <button type="submit" name="button" class="btn btn-success">Send Message</button> 
     </center> 
     </div> 
     {{csrf_field()}} 
    </form> 
0

你的代碼中有一個印刷錯誤,並且是無關的}。像這樣刪除它。

Route::get('mynewmassagepage','[email protected]')->name('sendmessage'); 
+1

你可以添加一些解釋? *爲什麼*這能解決問題? – wally

0

由於路由無效,您會收到此錯誤。您的Route.php文件中有一些小錯誤,行號爲233.爲什麼在get路由中使用}符號?刪除這個額外的符號,並使用它,

Route::get('/mynewmassagepage','[email protected]')->name('sendmessage'); 
相關問題