我在yii中实施了这个项目。我完成了我的项目,但我想改变而不是id来命名。即网址管理。我在config.php中取消注释然后我添加了以下代码。以下是: 我的表名是食谱:
public function loadModel($id)
{
$model=Recipe::model()->findByPk($id);
if($model===null)
throw new CHttpException(404,'The requested page does not exist.');
return $model;
}
public function loadModel2($name)
{
$model=Recipe::model()->find('t.name=:name', array(':name' => $name));
if($model===null)
throw new CHttpException(404,'The requested page does not exist.');
return $model;
}
除了这个我添加了网站控制器的顶部使用Recipe。但它显示错误
使用非复合名称'Recipe'的use语句无效 请建议我合适的答案
答案 0 :(得分:0)
我个人在我的项目中使用类似/ product-name / p / 1的东西,这是SEO友好的。要使您的链接看起来像您必须先更改网址规则
'urlManager' => array(
'urlFormat' => 'path',
'showScriptName' => false,
'urlSuffix' => '/',
'rules' => array(
'<title:.*?>/p/<id:\d+>'=>'product/view',
),
),
然后使用它来创建您的网址。
Yii::app()->createUrl('product/view',array('id'=>$model->id, 'title'=>$model->name))
现在它有两种方式,创建网址将始终创建像/ product-name / p / 1这样的网址,而且你可以用正常的方式显示产品
/**
* Displays a particular model.
* @param integer $id the ID of the model to be displayed
*/
public function actionView($id)
{
$model = $this->loadModel($id);
$this->render('view',array(
'model'=>$model,
));
}