缺少[Route:ticket.edit] [URI:ticket_ads / edit / {ad}]

时间:2017-08-13 15:57:08

标签: php laravel

我正在尝试编辑表格中的记录。我已经创建了一个路线和表格,但我无法解决这个错误。我已经找到了问题,但我无法找到解决方法。我是否认为edit.blade.php文件需要$ad->id传递?

$ad->id是列表视图中特定添加的ID。列表视图包含从表中显示的所有票证,以下链接用于编辑该项目。

使用以下代码访问编辑路径:

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

我有一条路线可以打开编辑视图表单:

Route::get('/ticket_ads/edit/{ad}', 'TicketAdsController@editTicketAdForm')->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

我如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

更改此行:

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

到此:

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

答案 1 :(得分:0)

这个

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

错了。正确的语法是:

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

你也应该放弃使用array()支持[]语法,因为Laravel无论如何都需要PHP 5.4+(除非你使用古老版本的Laravel,比如v4?)

答案 2 :(得分:0)

调用路由的正确语法是。

{{ route('/cardetails', ['121','cars'] ) }}

在 URL 中,它会像下面这样。

127.0.0.1:8000/cardetails/121/cars