Ter*_*ryG 1 php laravel eloquent laravel-4
我正在开发我的第一个 Laravel 4 项目,并使用雄辩的 ORM 通过路由从数据库中检索行。例子:
这是一条路线:
Route::get('{publisher}/{series}', function($publisher, $series)
{
$result = Comic::where('publisher', '=', $publisher)
->where('series', '=', $series)
->orderBy('issue', 'asc')
->get();
return View::make('comic')
->with('result', $result);
});
Run Code Online (Sandbox Code Playgroud)
这应该匹配像 site.com/marvel/amazing-spider-man 这样的 url
目前它仅适用于 site.com/marvel/amazing Spider-man 或 site.com/marvel/amazing%20spider-man
如何确保只使用“-”网址?我相信我需要做的是:
A。编写在路由期间将“-”替换为 %20 的代码 b.编写在 url 生成期间用“-”替换 %20 的代码
另一个考虑因素是我真的不希望我的内容可以在两个网址上访问。
我认为您没有得到预期结果的原因是由于“系列”名称存储在数据库中的格式,请记住,这是在寻找完全匹配,因此如果您想检索以下结果:
http://www.site.com/marvel/amazing-spider-man
Run Code Online (Sandbox Code Playgroud)
您需要将其作为“amazing-spider-man”存储在数据库中,以避免删除破折号(-)的额外步骤,如果您不喜欢这种格式,那么您可以执行以下操作:
$series = str_replace('-', ' ', $series);
Run Code Online (Sandbox Code Playgroud)
这将删除破折号,但请注意不要在名称中使用破折号,因为它们会被删除,现在您可以将系列名称存储在数据库中作为“惊奇蜘蛛侠”。
| 归档时间: |
|
| 查看次数: |
13934 次 |
| 最近记录: |