st.*_*imp 8 php sql arrays activerecord 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
]);
}
Run Code Online (Sandbox Code Playgroud)
如何在Controller中使用Yii2或PHP获取$ chapter的唯一值数组?让我们说在sql看起来像
SELECT DISTINCT chapter FROM ' faq_table'
jag*_*ler 14
这可以这样做:
Faq::find()->select('chapter')->distinct()->all();
Run Code Online (Sandbox Code Playgroud)
如果您希望将结果作为普通数组而不是包含Faq模型的数组,则可以在asArray()之前添加->all().
运行下面的代码将显示它将生成这个确切的查询.
Faq::find()->select('chapter')->distinct()->createCommand()->getSql();
Run Code Online (Sandbox Code Playgroud)
额外评论.我还认为如果你想使用这些模型,最好删除该行$faq = Faq::find()->all();并使用$dataProvider->getModels()它.这样,获取数据的查询不会运行两次.