2017-08-13 35 views
0

我試圖編輯表中的記錄。我創建了一個路線和表單,但是我無法通過這個錯誤。我已經找到了問題,但我找不到解決辦法。我正確地認爲edit.blade.php文件需要通過$ad->id缺少[Route:ticket.edit] [URI:ticket_ads/edit/{ad}]所需參數

$ad->id是列表視圖中特定添加的標識。列表視圖具有從表格中顯示的所有票據,並且下面的鏈接用於編輯該一個項目。

編輯路線是使用下面的代碼訪問:

<a href="{{ route('ticket.edit', $ad->id) }}">Edit</a> 

我有應該打開編輯視圖形式的一個路線:

Route::get('/ticket_ads/edit/{ad}', '[email protected]')->name('ticket.edit'); 

上述路由指向這在控制器:

public function editTicketAdForm($id) 
    { 
     //$ad = DB::table('ticket_ads')->where('id', $id)->value('id'); 
     return view('Ads.edit')->with('id', $id); 
    } 

這是上述函數調用的視圖:

@extends('Shared.Layouts.MasterWithoutMenus') 

@section('title') 
Edit a ticket ad 
@stop 

@section('content') 
<div class="container"> 
    <div class="row"> 
    <div class="col-md-8 col-md-offset-2"> 
     <div class="panel panel-default"> 
     <div class="panel-heading"><h2>Edit your ticket ad</h2></div> <br/> 

     @if ($errors->any()) 
      <div class="alert alert-danger"> 
       <ul> 
        @foreach ($errors->all() as $error) 
         <li>{{ $error }}</li> 
        @endforeach 
       </ul> 
      </div> 
     @endif 

     {{ Form::open(array('route' => 'ticket.edit', $id = 'id')) }} 

     <div class="form-group"> 
      {{ Form::label('title', 'Title') }} 
      {{ Form::text('title', Input::old('title'), array('class' => 'form-control')) }} 
     </div> 

     <div class="form-group"> 
      {{ Form::label('comment', 'Comment') }} 
      {{ Form::text('comment', Input::old('comment'), array('class' => 'form-control')) }} 
     </div> 

     {{ Form::submit('Submit', array('class' => 'btn btn-primary')) }} 

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

這是通常引發錯誤

{{ Form::open(array('route' => 'ticket.edit', $id = 'id')) }} 

的ID顯示在URL作爲ticket_ads/edit/7例如線。

我該如何克服這個問題?

+0

您已經定義(除非您使用Laravel的古代版,V4一樣?)路由爲GET'Route :: get()'。在'

中看起來像POST請求。這是對的嗎。嘗試分享與GET請求相關的內容。 –

+0

它需要更清楚。請分享更多的代碼。你分享這行{{Form :: open(array('route'=>'ticket.edit',$ id))}},也是這個 id)}}「>,它不清楚是哪個問題。刪除無關的代碼,並嘗試擴展更多可能更受關注的代碼。 –

回答

1

改變這一行:

{{ Form::open(array('route' => 'ticket.edit', $id = 'id')) }} 

這樣:

{{Form::open(array('route' => array('ticket.edit', $id)))}} 
+0

就是這樣。謝謝。 – kamil1995b

+0

歡迎,很高興它的作品。 –

0

{{ Form::open(array('route' => 'ticket.edit', $id = 'id')) }} 

是錯誤的。正確的語法是:

{{ Form::open(['route' => ['ticket.edit', $id]]) }} 

也應該安全地拋棄贊成[]語法的使用array()作爲Laravel需要PHP 5.4+反正

+0

它仍然會給出錯誤。我在Laravel 5.2.45上。將會更新,但這不會投入生產。 – kamil1995b

相關問題