public function show($id)
{
}
路线
Route::get('post/{id}','PostController@show');
如何将标题显示为url而不是id?是否可以只更改url作为标题,否则我们需要在数据库表中指定唯一标题?
答案 0 :(得分:1)
public function show($title) // For the understanding
{
}
路线
Route::get('post/{title}','PostController@show');
只需使用title
代替id
。
答案 1 :(得分:1)
public function show( $title = "basic", $id = 0 )
{
}
路线
Route::get('post/{title}-{id}','PostController@show')->where("id", "[0-9]+"); // id should be integer
在视图中添加title
左侧id
。
顺便说一句,你不需要独特的slu ..
答案 2 :(得分:1)
无论您在Route
中使用什么。它可以是{id}
或{title}
或{slug}
或其他任何内容。这就像一张外卡。重要的是你正在通过外卡。这取决于您的刀片文件。
您的刀片文件应如下所示:
<table>
<tr>
<th>ID</th>
<th>Title</th>
<th>Other</th>
</tr>
@foreach($datas as $data)
<tr>
<td>{{ $data->id }}</td>
<td><a href="{{ action('PostController@show',[$data->id]) }}">{{ $data->title }}</a></td>
<!-- by using [$data->id] as a second parameter when a user click on title it will view the show page with data of the same row from database -->
<td>{{ $data->other }}</td>
</tr>
@endforeach
</table>
<强>路线:强>
Route::get('post/{id}','PostController@show');
<强>控制器:强>
public function show($id)
{
$post = Post::findOrfail($id);
return view('folder.fileName',compact($post));
}
答案 3 :(得分:0)
这很简单!只需将其添加到您的模型类:
public function getRouteKeyName()
{
return '[your-column-name-here]';
}
Laravel使用此函数getRouteKeyName()来表示名称:)