在Cakephp中如何在url中显示名称而不是id?
我想用cakephp自定义我的url在Cakephp中如何在url中显示名称而不是id?,url,cakephp,controller,Url,Cakephp,Controller,我想用cakephp自定义我的url http://localhost/cantq4tickets/events/event_detail/1 我想要的不是url中的1(event_id),而是event name,比如生日派对 您所追求的是路由,这为您提供了一些灵活性,使URL变得美观。我建议先读一读,然后再看一些例子:在events db表中添加字段'slug'VARCHAR(255) 在事件模型的“保存前添加”方法中: public function beforeSave($option
http://localhost/cantq4tickets/events/event_detail/1
我想要的不是url中的1(event_id),而是event name,比如生日派对 您所追求的是
路由
,这为您提供了一些灵活性,使URL变得美观。我建议先读一读,然后再看一些例子:在events db表中添加字段'slug'VARCHAR(255)
在事件模型的“保存前添加”方法中:
public function beforeSave($options = array()) {
parent::beforeSave();
$name_to_slug = Inflector::slug($this->data['Event']['name'], $replacement = '-');
$this->data['Event']['slug'] = strtolower($name_to_slug);
return true;
}
在你的路由器里
Router::connect('/events/*', array('controller' => 'events', 'action' => 'details'));
视图中的链接:
<?php echo $this->Html->link($event['Event']['name'],array('controller'=>'events','action'=>'details',$event['Event']['slug'])); ?>
在您的EventsController::details($slug=null)findBySlug