我刚刚开始学习Laravel,但似乎无法完成任何工作。因为我是一个初学者,所以我不知道在哪里搜索。但这是一个主意:
“别名”用于构建URL(例如:http://site.tld/about-us),我在路由中使用以下形式:
Route::get('about-us', array('uses' => 'CmsController@showByAlias'));
Route::get('article-1-title', array('uses' => 'CmsController@showByAlias'));
我可以使所有事情都以简单的方式工作,但是我需要让事情更具动态性。我想知道的是:如何使用路线标题(即“ about-us”或“ article-1-title”)从数据库中获取ID?
您需要使用Laravel内部的可选参数路由,如Laravel文档中所述。
将以下内容添加到您的中routes.php
。这将处理除索引页面以外的任何其他URL。如果您需要任何其他静态URL,请在此行之前添加它们。
Route::get('/{alias}', array('uses' => 'CmsController@showByAlias'));
现在,您需要定义将处理路线的控制器。可能是这样的:
class CmsController extends BaseController {
public function showByAlias($alias)
{
$content = Cms::findByAlias($alias);
return View::make('cms.show')->with('content', $content)->with('title',$title);
}
您仍然需要编写Cms::findByAlias
模型中的函数,以从数据库中检索和处理适当的内容。当然,您可以在控制器本身中执行此操作。
另请注意,如果在URL中传递了无效的别名,则需要添加错误处理。例如,在这种情况下显示404错误页面。
只是一个提示:我正在Laravel应用程序中做类似的事情。我将所有CMS内容以markdown格式存储,并在将其传递到视图之前使用Parsedown在Laravel中将其转换为HTML 。非常适合我的需求。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句