php – Yii2 – 获取所有独特模型属性值的最佳方法是什么?

我的模型FAQ有4个属性

* @property integer $id
* @property string $chapter
* @property string $question
* @property string $answer

现在我的actionIndex函数看起来像

public function actionIndex()
{

    $faq = Faq::find()->all();

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

    return $this->render('index',[
        'dataProvider' => $dataProvider,'faq' => $faq
    ]);
}

如何在Controller中使用Yii2或PHP获取$chapter的唯一值数组?让我们说在sql看起来像

SELECT disTINCT chapter FROM’faq_table’

这可以这样做:
Faq::find()->select('chapter')->distinct()->all();

如果您希望结果为普通数组而不是包含Faq模型的数组,则可以在 – > all()之前添加asArray().

运行下面的代码显示它将生成这个确切的查询.

Faq::find()->select('chapter')->distinct()->createCommand()->getsql();

额外评论.我也认为最好删除$faq = Faq :: find() – > all();如果要使用模型,请使用$dataProvider-> getModels().这样,获取数据的查询不会运行两次.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...