2017-08-13 127 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

相关问题