基于 id 字段查询数据库但在 URL 中传递标题 Laravel
Querying DB based on id field but passing title in URL in Laravel
这是我正在尝试做的事情。
我有一个定义的路线
Route::get('/{id}', [
'uses' => 'questionsController@show'
]);
基本上我是在我的问题模型中使用 Id 搜索记录。
在问题控制器中,显示方法的代码是
public function show($id)
{
$question = questions::find($id);
return view ('show', compact('question'));
}
在另一个视图中,我有以下代码
<a href = "/questions/"{{ $questions--> id }}> {{ $question->title }}</a>
基本上我用页面的 id 标记标题以确保当有人点击 link 他们被重定向 /questions/id
这是查询id的地方
如何将锚标记替换为问题的标题,以便 URL 变为
/questions/How我会游泳吗
但模型是根据 id 查询的(因为 id 是主键)?
也许试试
<a href="/questions/{{ $question->id }}">{{ $question->title }}</a>
这样做你的 url 变成 /questions/ID_OF_QUESTION 如果你想要它使用 /questions/title-of-the-question 不同之处在于你需要改变你查询问题的方式。使用 slug 来识别问题,因为 "How do I swing" 它没有正确 URL 解析,并且可能两个用户提出了相同的问题。
或
使用路由 /questions/id/title-of-the-question,但请注意,id 后面的文本无关紧要
你想要的是 url 鼻涕虫,the part of a URL which identifies a page using human-readable keywords。
有一个名为 'Eloquent-Sluggable' 的 Laravel 插件专门用于解决此问题。您可以在 https://github.com/cviebrock/eloquent-sluggable
找到它
文档很好;你应该会发现它很容易实现。
这是我正在尝试做的事情。
我有一个定义的路线
Route::get('/{id}', [
'uses' => 'questionsController@show'
]);
基本上我是在我的问题模型中使用 Id 搜索记录。
在问题控制器中,显示方法的代码是
public function show($id)
{
$question = questions::find($id);
return view ('show', compact('question'));
}
在另一个视图中,我有以下代码
<a href = "/questions/"{{ $questions--> id }}> {{ $question->title }}</a>
基本上我用页面的 id 标记标题以确保当有人点击 link 他们被重定向 /questions/id 这是查询id的地方
如何将锚标记替换为问题的标题,以便 URL 变为 /questions/How我会游泳吗
但模型是根据 id 查询的(因为 id 是主键)?
也许试试
<a href="/questions/{{ $question->id }}">{{ $question->title }}</a>
这样做你的 url 变成 /questions/ID_OF_QUESTION 如果你想要它使用 /questions/title-of-the-question 不同之处在于你需要改变你查询问题的方式。使用 slug 来识别问题,因为 "How do I swing" 它没有正确 URL 解析,并且可能两个用户提出了相同的问题。
或
使用路由 /questions/id/title-of-the-question,但请注意,id 后面的文本无关紧要
你想要的是 url 鼻涕虫,the part of a URL which identifies a page using human-readable keywords。
有一个名为 'Eloquent-Sluggable' 的 Laravel 插件专门用于解决此问题。您可以在 https://github.com/cviebrock/eloquent-sluggable
找到它文档很好;你应该会发现它很容易实现。