Query string not working in laravel 5

In the following code, I used {!! URL::route('editCatForm',['id'=>$row->id]) !!}

to navigate to the named route editCatForm with a query string ?id=5

or whatever comes dynamically on$row->id

@foreach($categories as $row)
        <td>{{ $count++ }}</td>
        <td>{{ $row->category_name }}</td>
        <td>{{ $row->category_status }}</td>
        <td><a href="{!! URL::route('editCatForm',['id'=>$row->id]) !!}">edit</a> / <a href="{!! URL::route('destroyCat',$row->id) !!}">delete</a></td>


My route for this



but still it shows url as






Route points to function

public function editCat($id)
    $catEdit = Category::find(Input::get('id'));
    $categories = $this->getCat();
    return view('categoriesAddForm',compact('categories','catEdit'));


What could be the problem that the query string is not working here?


source to share

3 answers

The format of your url editCatForm/{id?}

, so if you provided an id it will try to replace {id}

with your number and you will get editCatForm/5


The problem is in your controller action. function editCat($id)

already takes $id

off the route - you Input::get('id')

only have to replace $id



can only be replaced by a helper function route(...)


If you want to get rid of /id

, you can remove {id}

from your route and then route(...)

just add ?id=5

instead /5

. You will need to remove the argument $id

from the function and get the ID Request::input('id');




How route () function works.

If you insist on having a query string, then you need to manually add the url to the url and you won't be able to route based on that.

One way to construct the query string is like this

$params = array('id' => 5);
$queryString = http_build_query($params);
URL::to('projects/brainlaratest/editCatForm?'.$queryString )




The routing is correct. Your problem is getting $id

in action.

Since you passed $id

in the route parameter, you can capture the segment $id

inside your action.

public function editCat($id)
    $catEdit = Category::find($id); // edit this line.
    $categories = $this->getCat();
    return view('categoriesAddForm',compact('categories','catEdit'));


source: http://laravel.com/docs/5.0/routing#route-parameters



All Articles