user8189215 user8189215 - 2 days ago 4
PHP Question

Laravel Route not defined error

i keep getting route not defined error and if i use url() i get server can not provide a secure connection error.
i hope i get helped!

route

Route::get('/show/{table_name}/{product_id}', 'PageCotroller@showdetails')->name('product-show');


View:

<h4><a href="{{ url('product-show' .$table_name . '/' .$product->item_id)}}">{{ $product->title }}</a></h4>


Controller:

public function showdetails($table_name,$pid){

$categories = Category::all();
$data['product_id']=$pid;
$data['table']=$table_name;
$shop_name=Shop::all();
$query = DB::table($table_name)
->select('*')
->where('item_id', '=', $pid)
->get();;
$image=Item_image::all();
$pro_img = DB::table('item_images')
->select('image_loc')
->where('prod_id', $pid)
->get();
return view('show_details',compact('categories','image','pro_img','table_name','shop_name'));


}

Answer

To call a route by name, you should use the route function and add the parameters in an array as the second parameter.

route('product-show', [$table_name, $product->item_id])

The reason you get a route not defined error is that you are generating the url /product-show/{table_name}/{product_id} and the actual url is /show/{table_name}/{product_id}. Also, adding the parameters manually is bad practice when there are many helper functions that do this for you.