Reputation: 51
i am trying to pass 2 parameters in my URL and i tried it before and it worked perfectly, but now is giving me this error : " Missing required parameter for [Route: details] [URI: {RS}/{id}] [Missing parameter: RS]. "
this is the route in my web.php :
Route::get('/{RS}/{id}', 'App\Http\Controllers\SiteController@getDetails')->name('details');
this is the view :
<div class="card-body text-dark">
<div style="width:120px " class="ml-1 mt-1 vender-img">
<a href="{{route('details',['id'=> $Resultas->ID , 'RS'=> $Resultas->RS] )}}">
@if( $Resultas->Logo != "" )
<img style="height:110px" src="{{URL::asset('assets/images/logos/'.$Resultas->ID . '/'.$Resultas->Logo)}}" alt="image">
@else
<img style="height:110px" src="{{URL::asset('assets/images/idea.png')}}" alt="image">
@endif
</a>
</div>
<h6 class="card-title"><a href="{{route('details',['id'=> $Resultas->ID , 'RS'=> $Resultas->RS] )}}">{{$Resultas->RS}}</a></h6>
<p class="card-text">{{ Str::limit($Resultas->Descp , 150) }}</p>
</div>
as you can see i am trying to pass the id and RS in that URL .
this is the function from the controller :
public function getDetails($id , $RS)
{
$detailsPage = entreprise::find($id);
$detailsPage->increment('views');
//dd($detailsPage->title);
$review = avis::where('id_e', $id)->where('active',1)->count();
$avg = avis::where('id_e', $id)->where('active',1)->avg('rating');
$avgStar = avis::where('id_e', $id)->where('active',1)->avg('rating');
if ($avgStar > 0 && $avgStar <= 0.5) {
$avgStar = 0;
} elseif ($avgStar > 0.5 && $avgStar <= 1) {
$avgStar = 1;
} elseif ($avgStar > 1 && $avgStar <= 1.5) {
$avgStar = 1;
} elseif ($avgStar > 1.5 && $avgStar <= 2) {
$avgStar = 2;
} elseif ($avgStar > 2 && $avgStar <= 2.5) {
$avgStar = 2;
} elseif ($avgStar > 2.5 && $avgStar <= 3) {
$avgStar = 3;
} elseif ($avgStar > 3 && $avgStar <= 3.5) {
$avgStar = 3;
} elseif ($avgStar > 3.5 && $avgStar <= 4) {
$avgStar = 4;
} elseif ($avgStar > 4 && $avgStar <= 4.5) {
$avgStar = 4;
} elseif ($avgStar > 4.5) {
$avgStar = 5;
}
$data = ['LoggedUserInfo' => User::where('id', '=', session('LoggedUser'))->first()];
$gallery = galerie::where('identre', '=', $id)
->select('galeries.Img as img', 'galeries.alt as alt')
->get();
$banner = galerie::where('identre', $id)
->where('banner', 1)
->first();
$service = services::where('id_ent', '=', $id)
->select('service')->get();
$relate = entreprise::where('idact', '=', $detailsPage->idact)
->where('id', '!=', $id)
->where('entreprises.active', '=', 1)
->select('id','RS','Logo')
->get();
$comments = avis::join('users','users.id','=','avis.id_user')
->where('avis.id_e',$id)
->where('active','=', 1)
->select('avis.comment as comment' , 'avis.rating as rating' , 'users.name as name' , 'users.last_name as last_name' , 'avis.created_at as created_at')
->paginate(10);
return view('entreprise_details', $data, ['details' => $detailsPage, 'galerie' => $gallery, 'serv' => $service, 'relate' => $relate, 'stars' => $avgStar, 'AVG' => $avg, 'rev' => $review , 'comment' => $comments ,'banners' => $banner]);
}
it must be a stupid error that i can't find maybe some additional eyes can help me !
Upvotes: 0
Views: 977
Reputation: 139
it is possible that one of the values you are passing to route can be null, so just use ? after them to ignore the error and check them in controller if their value is null or not
Route::get('/{id?}/{RS?}', 'App\Http\Controllers\SiteController@getDetails')->name('details');
Upvotes: 2