【发布时间】:2021-07-13 20:54:33
【问题描述】:
我正在尝试在我的 URL 中传递 2 个参数,我之前尝试过,它运行良好,但现在给我这个错误:“[Route: details] [URI: {RS}/{id] 缺少必需的参数}] [缺少参数:RS]。"
这是我的 web.php 中的路线:
Route::get('/{RS}/{id}', 'App\Http\Controllers\SiteController@getDetails')->name('details');
这是视图:
<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>
如您所见,我正在尝试在该 URL 中传递 id 和 RS。
这是控制器的功能:
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]);
}
这一定是我找不到的愚蠢错误,也许一些额外的眼睛可以帮助我!
【问题讨论】:
-
将参数顺序
Route::get('/{RS}/{id}',改为Route::get('/{id}/{RS}', -
您是否测试过
'RS'=> $Resultas->RS是否有效? -
@Dren $Resultas->RS 确实有效,我刚刚检查过,更改 id 和 RS 的顺序没有帮助
标签: laravel