動的ナビゲーションバーメニューを作成しましたが、パラメータで正しいURLを取得できません。yii2テーブルから正しいURLを取得する方法
は、ここに私のモデルコードの一部です:
public function getNavMenu($menu_id)
{
$menu = Menus::find($menu_id)
->where('menu_id = :menu_id', [':menu_id' => $menu_id])
->orderBy('order')
->all();
// $data=[];
foreach ($menu as $menus) {
if (isset($menus->parent)) {
$submenu[$menus->id] = [
'label' => Yii::t('frontend', ($menus['name'])),
'url' => parse_url($menus['route']),
'options' => [
['class' => 'nav nav-pills nav-stacked'],
['class' => 'nav nav-second-level'],
['class' => 'nav nav-third-level'],
],
];
$data[$menus->parent]['items'] = $submenu;
} else {
# menu
$data[$menus->id] = [
'label' => Yii::t('frontend', ($menus['name'])),
'url' => (substr($menus["route"], 0, 4) == "http")
? $menus["route"]
: [$menus["route"]],
];
}
}
return $data;
}
私のページアクション:
public function actionView($slug)
{
$this->layout = '@frontend/views/layouts/original/main.php';
$model = Page::find()->where(['slug'=>$slug, 'status'=>Page::STATUS_PUBLISHED])->one();
if (!$model) {
throw new NotFoundHttpException(Yii::t('frontend', 'Page not found'));
}
$viewFile = $model->view ?: 'view';
return $this->render($viewFile, ['model'=>$model]);
}
私のスタティックルートがある:['label' => Yii::t('frontend', 'About'), 'url' => ['/page/view', 'slug'=>'about']]
私は1つの列リンクのレコードを挿入した場合
/page/view, slug=>about
/page/about
URLが表示されます:http://yii2-web.dev/page/view,slug=about
またはhttp://yii2-web.dev/page/about
かつ確実に結果が見つかりませんでした。
'ページ/ view'要求を処理するアクションの署名とは何ですか? – topher
あなたは説明を与えることができますか?アクションの署名はどういう意味ですか? –