1

我正在使用改进的 yii2 高级模板

不确定是否与问题/解决方案相关,但要进入类别,我有一个带有一些 javascript 的表单,该表单在更改时会将用户重定向到所选类别。

我有以下代码允许我访问该类别 id 中的帖子我去 localhost:8888/advanced/article/category?id=1

目前的问题是,如果我从类别视图中调用模型中的 getCategoryName 函数,则 id 参数不会传递给模型函数,因此在使用 getCategoryName 时默认为运动。

 public function actionCategory($id)
{

    $model = new Article();

    $searchModel = new ArticleSearch();

    $query = Article::find()
    ->where(['category' => $id]);

     $dataProvider = new ActiveDataProvider([
                    'query' => $query,
                    ]);

    return $this->render('category', [
        'searchModel' => $searchModel,
        'dataProvider' => $dataProvider,
        'model'=>$model,
    ]);
}

然后在我看来,我使用以下方法在执行模型函数方面起作用,但是我不确定如何将参数/当前类别 ID 传递给模型函数。以下代码适用于单篇文章视图中的 _index &。

<?= $model->CategoryName ?>

这是我的模型功能

public function getCategoryName($category = null)
{
    $category = (empty($category)) ? $this->category : $category ;

    if ($category === self::CATEGORY_ECONOMY)
    {
        return Yii::t('app', 'Economy');
    }
    elseif ($category === self::CATEGORY_SOCIETY)
    {
        return Yii::t('app', 'Society');
    }
    else
    {
        return Yii::t('app', 'Sport');
    }
}
4

2 回答 2

0

在您看来,使用类似的东西

$request = Yii::$app->request;
$id = $request->get('id');//get id from request or change according to your requirement
echo  $model->getCategoryName($id);//full method name here
于 2015-02-21T15:08:13.590 回答
0

尝试使用这个。将 === 更改为 ==:

public function getCategoryName($category = null)
{
    $category = (empty($category)) ? $this->category : $category ;

    if ($category == self::CATEGORY_ECONOMY)
    {
        return Yii::t('app', 'Economy');
    }
    elseif ($category == self::CATEGORY_SOCIETY)
    {
        return Yii::t('app', 'Society');
    }
    else
    {
        return Yii::t('app', 'Sport');
    }
}
于 2019-05-30T05:28:28.730 回答