【发布时间】:2017-01-26 14:24:28
【问题描述】:
我在 laravel 5 中有一个路由问题。我想制作一个系统,允许我使用变量创建路由。我已经搜索过了,但我找不到任何适合我的东西。 我想在 url 中放置一个变量,这样当我单击按钮时,它会在 url 中显示我: ... / $ range / $ sub-range / $ product_name 例如:.../美容/卫生/保湿霜。 谢谢你的帮助
更新 1
@JeffreyWesterkamp 是的,我做了这样的路线:Route::get('/{name}', 'RangeController@getRange')->name('range');,并在我的控制器中:
public function getRange($name)
{
$ranges=Range::all();
$aRange=Range::find($name);
return view('guest/range/index')->with('aRange', $aRange)->with('ranges',$ranges)->with('name',$name);
}
我在这种情况下使用了两个视图。 layoutguest.blade.php 和 index.blade.php 在文件夹 (guest/range/) 中。 在我看来,layoutguest,我做了这个:
@foreach ($ranges as $range)
<li>
<a href="{{route('range',$range->name)}}">{{$range->name}}</a>
</li>
@endforeach
并且在 index.blade.php 的一侧。我做了
@foreach ($ranges as $gamme)
@extends('layoutguest')
@section('content')
@foreach ($ranges as $gamme)
<section ...>
<div ....>
<h4>{{$range->name}}</h4>
<p>
{{$range->description}}
</p>
</div>
.......
</section>
@endforeach
@endsection
现在,当我单击 layoutguest 中的菜单(范围)时。它显示在 url 中:domaine/public/nameofrange
所以这很好。但我对 index.blade 上的 @foreach 有疑问,它显示所有范围的名称和描述。虽然我希望它在活动菜单上显示名称和描述,而不是所有范围。
layoutguest 上的@foreach 效果很好!
非常感谢您的帮助,我期待您的回音。
更新 2
如果我将$name 替换为$id。我在 layoutguest.blade 和 index.blade 中有我想要的。但网址显示“public/1”。
我去掉 index.blade 的@foreach 并添加`{{$aRange->name}}
我想知道如何在我的 url 和我的页面中包含范围的信息,例如 url "domaine/public/nameofgamme" 和 index.blade "name and description by range" 谢谢你的帮助
【问题讨论】:
-
路由参数呢?您可以通过在路由定义中使用花括号将路由段定义为变量:
/some-static-segment/{variable_1}/{variable_2}。 laravel.com/docs/5.3/routing#route-parameters -
@JeffreyWesterkamp 你能帮帮我吗?我被这个问题困住了:/