2

问题是 - 我不知道如何切换到翻译的 slug:

我已经使用lav45/yii2-translated-behavior.

数据库非常简单:

投资组合模型:

id | created_at | is_active

PortfolioLang 模型:

portfolio_id | lang_id | title | content

到目前为止,一切都很好。我有一个actionView调用翻译内容的方法,如下所示:

    protected function findModelBySlug($slug)
    {
        if (($model = Portfolio::findOne(['slug' => $slug])) !== null) {
            return $model;
        } else {
            throw new NotFoundHttpException();
        }
    }

    public function actionView($_lang, $slug)
    {
        $portfolioLang = PortfolioLang::findOne(['lang_id' => $_lang,'slug' => $slug]);

        $model = $portfolioLang->portfolio;
        
        $pictures = PortfolioPicture::find()->where(['portfolio_id' => $model->id])->orderBy(['sorting'=>SORT_ASC])->all();       

        return $this->render('view', [
            'model' => $model,
            'picture' => $pictures,
            'langList' => Lang::getList(),
        ]);
    }

必须注意,这是有效的,“直到”它在我打开条目时尝试在语言之间切换。

我在这里使用示例代码:https ://github.com/lav45/yii2-translated-behavior-demo/blob/master/frontend/components/LangHelper.php

我想我需要的不是示例代码(看起来它只适用于现有条目的当前 ID)。有人能给我一些下一步的提示吗?

提前致谢!

4

0 回答 0