I am trying to edit a record in a table. I have created a route and the form, but I can’t get past this error. I have figured out the problem but I can’t find a fix. Am I correct in thinking that the edit.blade.php
file needs the $ad->id
passing?
The $ad->id
is an ID of a specific add in a List View. The list view has all the tickets displayed from a table, and the below link is meant to edit that one item.
The edit route is accessed using following code:
<a href="{{ route('ticket.edit', $ad->id) }}">Edit</a>
I have one route that is supposed to open up the edit view form:
Route::get('/ticket_ads/edit/{ad}', 'TicketAdsController@editTicketAdForm')->name('ticket.edit');
The above route points to this in the controller:
public function editTicketAdForm($id) { //$ad = DB::table('ticket_ads')->where('id', $id)->value('id'); return view('Ads.edit')->with('id', $id); }
This is the view called by the above function:
@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
This is the line that throws the error
{{ Form::open(array('route' => 'ticket.edit', $id = 'id')) }}
The ID displays normally in the URL as ticket_ads/edit/7
for example.
How do I get past this?
Advertisement
Answer
Change this line:
{{ Form::open(array('route' => 'ticket.edit', $id = 'id')) }}
to this:
{{Form::open(array('route' => array('ticket.edit', $id)))}}