2015-04-18 77 views
0

我要發佈的東西到數據庫...但它不工作...Laravel MethodNotAllowedHttpException後交

我創建以前一個帖子的形式,效果不錯,但現在它不工作另一個?!

因此,這裏是我的Route::group

Route::group(array('before' => 'auth', 'prefix' => 'admin'), function() 
{ 
     Route::resource('/', 'AdminController'); 
     Route::resource('news', 'AdminNewsController'); 
     Route::resource('calendar', 'AdminCalendarController'); 
}); 

示範Calendar

<?php 

use Illuminate\Database\Eloquent\SoftDeletingTrait; 

class Calendar extends Eloquent { 

    protected $table = 'event'; 
    public $timestamps = false; 

    use SoftDeletingTrait; 

    protected $dates = ['deleted_at']; 

} 

而且create.blade.php

<div class="portlet-body form"> 
         {{ Form::open(['method' => 'post', 'role' => 'form', 'files' => true]) }} 

           <div class="form-body"> 
            <div class="form-group"> 
             <label>Naam</label> 
             <input type="text" class="form-control" name="name" placeholder="Naam van de rally/event"> 
            </div> 

            <div class="form-group"> 
             <label>Korte info</label> 
             <textarea class="form-control" name="short_info" id="text_editor" rows="5" placeholder="Mag nie té lang zijn..."> 
             </textarea> 
            </div> 


            <div class="form-group"> 
             <label>Afbeelding/logo evenement</label> 
            </div> 
             <div class="form-group"> 
              <div class="fileinput fileinput-new" data-provides="fileinput"><input type="hidden"> 
               <div class="fileinput-new thumbnail" style="width: 200px; height: 150px;"> 
                <img src="{{ Config::get('app.url') }}/public/img/10877743_338215636368840_1736631818_n.png" alt=""> 
               </div> 
               <div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px; line-height: 10px;"> 
               </div> 
               <div> 
                <span class="btn default btn-file"> 
                 <span class="fileinput-new"> 
                  Selecteer een afbeelding 
                 </span> 
                 <span class="fileinput-exists"> 
                  Verander 
                 </span> 
                 {{ Form::file('img') }} 
                </span> 
                <a href="#" class="btn default fileinput-exists" data-dismiss="fileinput"> 
                 Verwijder 
                </a> 
               </div> 
              </div> 
             </div> 


            <div class="form-group"> 
             <label>Doen we podium?</label> 
             <div class="radio-list"> 

              <label class="radio-inline"> 
              <span> 
              {{ Form::radio('podium', 'true') }} 
              </span> 
              <b style="color:green">Ja</b> 
              </label> 

              <label class="radio-inline"> 
              <span> 
              {{ Form::radio('podium', 'false', true) }} 
              </span> 
              <b style="color:red">Nee</b> 
              </label> 


             </div> 
            </div> 

            <div class="form-group"> 
             <label>Studio aanwezig?</label> 
             <div class="radio-list"> 

              <label class="radio-inline"> 
              <span> 
              {{ Form::radio('studio', 'true') }} 
              </span> 
              <b style="color:green">Ja</b> 
              </label> 

              <label class="radio-inline"> 
              <span> 
              {{ Form::radio('studio', 'false', true) }} 
              </span> 
              <b style="color:red">Nee</b> 
              </label> 


             </div> 
            </div> 

            <div class="form-group"> 
             <label>Is er rallyradio?</label> 
             <div class="radio-list"> 

              <label class="radio-inline"> 
              <span> 
              {{ Form::radio('radio', 'true') }} 
              </span> 
              <b style="color:green">Ja</b> 
              </label> 

              <label class="radio-inline"> 
              <span> 
              {{ Form::radio('radio', 'false', true) }} 
              </span> 
              <b style="color:red">Nee</b> 
              </label> 


             </div> 
            </div> 

            <div class="form-group"> 
             <label>Website</label> 
             <input type="text" class="form-control" name="site" placeholder="Website van het evenement"> 
            </div> 

            <div class="form-group"> 
             <label class="control-label">Start datum</label> 
             <input type="date" name="start_date" class="form-control" placeholder="dd/mm/yyyy"> 
            </div> 

            <div class="form-group"> 
             <label class="control-label">Eind datum</label> 
             <input type="date" name="expire_date" class="form-control" placeholder="dd/mm/yyyy"> 
            </div> 

           </div> 

           <div class="form-actions"> 
            <input type="submit" class="btn green" value="Oplsaan" /> 
           </div> 

          {{ Form::close() }} 
         </div> 

而且我控制器AdminCa lendarController.php

public function store() 
    { 
     $rules = array(
      'name'    => 'required', 
      'short_info'  => 'required', 
      'podium'   => 'required', 
      'radio'    => 'required', 
      'studio'   => 'required', 
      'site'    => 'required', 
      'start_date'  => 'required', 
      'expire_date'  => 'required' 
      ); 
     $validator = Validator::make(Input::all(), $rules); 

     //process the storage 
     if ($validator->fails()) 
     { 
      Session::flash('error_message', 'Fout:' . $validator->errors()); 
      return Redirect::to('admin/calendar/create')->withErrors($validator); 
     }else{ 

      //store 
      $event       = new Calendar; 
      $event->rally_name    = Input::get('name'); 
      $event->short_info    = Input::get('short_info'); 
      $event->is_podium    = Input::get('podium'); 
      $event->is_studio    = Input::get('studio'); 
      $event->is_radio    = Input::get('radio'); 
      $event->website     = Input::get('site'); 
      $event->image     = Input::file('img')->getClientOriginalName(); 
      $event->posted_by    = Auth::user()->username; 
      $event->start_date    = strtotime(Input::get('start_date')); 
      $event->expire     = strtotime(Input::get('expire_date')); 
      $event->published_at   = time(); 
      $event->save(); 

      //save the image 
      $destinationPath = 'public/img/uploads'; 

      if (Input::hasFile('img')) 
      { 
       $file = Input::file('img'); 
       $file->move('public/img/uploads', $file->getClientOriginalName()); 
      } 
      //redirect 
      Session::flash('success', 'Evenement succesvol aangemaakt!'); 
      return Redirect::to('admin/calendar/create'); 

     } 

渲染HTML(查看源代碼):

<form method="POST" action="http://192.168.0.233/RPR/calendar" accept-charset="UTF-8" role="form" enctype="multipart/form-data"><input name="_token" type="hidden" value="tS5YojudgN6wGJpq59IYlN4DdiqW9o45pIrDvR7X"> 

           <div class="form-body"> 
            <div class="form-group"> 
             <label>Naam</label> 
             <input type="text" class="form-control" name="name" placeholder="Naam van de rally/event"> 
            </div> 

            <div class="form-group"> 
             <label>Korte info</label> 
             <textarea class="form-control" name="short_info" id="text_editor" rows="5" placeholder="Mag nie té lang zijn..."> 
             </textarea> 
            </div> 


            <div class="form-group"> 
             <label>Afbeelding/logo evenement</label> 
            </div> 
             <div class="form-group"> 
              <div class="fileinput fileinput-new" data-provides="fileinput"><input type="hidden"> 
               <div class="fileinput-new thumbnail" style="width: 200px; height: 150px;"> 
                <img src="http://192.168.0.233/RPR/public/img/10877743_338215636368840_1736631818_n.png" alt=""> 
               </div> 
               <div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px; line-height: 10px;"> 
               </div> 
               <div> 
                <span class="btn default btn-file"> 
                 <span class="fileinput-new"> 
                  Selecteer een afbeelding 
                 </span> 
                 <span class="fileinput-exists"> 
                  Verander 
                 </span> 
                 <input name="img" type="file"> 
                </span> 
                <a href="#" class="btn default fileinput-exists" data-dismiss="fileinput"> 
                 Verwijder 
                </a> 
               </div> 
              </div> 
             </div> 


            <div class="form-group"> 
             <label>Doen we podium?</label> 
             <div class="radio-list"> 

              <label class="radio-inline"> 
              <span> 
              <input name="podium" type="radio" value="true"> 
              </span> 
              <b style="color:green">Ja</b> 
              </label> 

              <label class="radio-inline"> 
              <span> 
              <input checked="checked" name="podium" type="radio" value="false"> 
              </span> 
              <b style="color:red">Nee</b> 
              </label> 


             </div> 
            </div> 

            <div class="form-group"> 
             <label>Studio aanwezig?</label> 
             <div class="radio-list"> 

              <label class="radio-inline"> 
              <span> 
              <input name="studio" type="radio" value="true"> 
              </span> 
              <b style="color:green">Ja</b> 
              </label> 

              <label class="radio-inline"> 
              <span> 
              <input checked="checked" name="studio" type="radio" value="false"> 
              </span> 
              <b style="color:red">Nee</b> 
              </label> 


             </div> 
            </div> 

            <div class="form-group"> 
             <label>Is er rallyradio?</label> 
             <div class="radio-list"> 

              <label class="radio-inline"> 
              <span> 
              <input name="radio" type="radio" value="true"> 
              </span> 
              <b style="color:green">Ja</b> 
              </label> 

              <label class="radio-inline"> 
              <span> 
              <input checked="checked" name="radio" type="radio" value="false"> 
              </span> 
              <b style="color:red">Nee</b> 
              </label> 


             </div> 
            </div> 

            <div class="form-group"> 
             <label>Website</label> 
             <input type="text" class="form-control" name="site" placeholder="Website van het evenement"> 
            </div> 

            <div class="form-group"> 
             <label class="control-label">Start datum</label> 
             <input type="date" name="start_date" class="form-control" placeholder="dd/mm/yyyy"> 
            </div> 

            <div class="form-group"> 
             <label class="control-label">Eind datum</label> 
             <input type="date" name="expire_date" class="form-control" placeholder="dd/mm/yyyy"> 
            </div> 

           </div> 

           <div class="form-actions"> 
            <input type="submit" class="btn green" value="Oplsaan" /> 
           </div> 

          </form> 

在我的其他形式後,我得到了完全一樣的,但是這一次不工作,另外一個確實...

回答

2

通過使用

Route::resource('calendar', 'AdminCalendarController') 

您將自動設定一個CRUD集的路線規則。

您的創建表單已將其設置爲自己的操作。

Form::open(['method' => 'post', 'role' => 'form', 'files' => true]) 

因此,當您在'/ calendar/create'上使用POST提交時,您應該在/ calendar上使用POST。

這就是爲什麼你得到MethodNotAllowedHttpException。沒有POST路線到'calendar/create'。

嘗試這樣做(記住你正在使用一組「管理員」前綴):

Form::open(['method' => 'post', 'url' => url('admin/calendar'), 'role' => 'form', 'files' => true]) 

Form::open(['method' => 'post', 'url' => action('[email protected]'), 'role' => 'form', 'files' => true]) 

PS:通過查看你的代碼,我知道你都知道什麼CRUD的/ REST是,但我給了一些解釋來幫助別人。

+0

謝謝,但我仍然得到相同的錯誤... – Robin

+0

你可以顯示HTML表單已在瀏覽器中解析?你能確認它指向正確的URL嗎? –

+0

我在問題中添加了。現在我確實看到URL沒有正確指向。 – Robin

相關問題