Yii 2 中的 ArgumentCountError
ArgumentCountError in Yii 2
我创建了 3 个课程内容。但不幸的是,它只显示了 1 个课程内容,如下图所示。我想要做的是展示我之前创建的所有课程内容。当我用这个语法 运行 时,它 运行 是正常的。
public function actionView($id)
{
$dataProvider = new ActiveDataProvider([
'query' => Coursecontent::findAll()->andFilterWhere(['coursecontent_id' => $id]),
]);
return $this->render('view', [
'model' => $this->findModel($id), 'dataProvider' => $dataProvider,
]);
}
但是当我把我的代码改成这个的时候。它显示此错误消息。我在这里要做的是展示所有课程内容。
函数 yii\db\BaseActiveRecord::findAll() 的参数太少,在第 57 行的 D:\XAMPP\htdocs\valuefarm\algobox_admin\controllers\CourseController.php 中传递了 0 个参数,正好有 1 个预期
public function actionView($id)
{
$dataProvider = new ActiveDataProvider([
'query' => Coursecontent::findAll()->andFilterWhere(['coursecontent_id' => $id]),
]);
return $this->render('view', [
'model' => $this->findModel($id), 'dataProvider' => $dataProvider,
]);
}
您不需要为 ActiveDataProvider
获取数据,它会为您完成。
只需提供查询。
public function actionView($id)
{
$dataProvider = new ActiveDataProvider([
'query' => Coursecontent::find()->andFilterWhere(['coursecontent_id' => $id]),
]);
return $this->render('view', [
'model' => $this->findModel($id), 'dataProvider' => $dataProvider,
]);
}
您的错误是 findAll()
需要一个条件并将 return 结果,而不是 ActiveQuery
实例。
例如
Coursecontent::findAll(['coursecontent_id' => $id]);
我创建了 3 个课程内容。但不幸的是,它只显示了 1 个课程内容,如下图所示。我想要做的是展示我之前创建的所有课程内容。当我用这个语法 运行 时,它 运行 是正常的。
public function actionView($id)
{
$dataProvider = new ActiveDataProvider([
'query' => Coursecontent::findAll()->andFilterWhere(['coursecontent_id' => $id]),
]);
return $this->render('view', [
'model' => $this->findModel($id), 'dataProvider' => $dataProvider,
]);
}
但是当我把我的代码改成这个的时候。它显示此错误消息。我在这里要做的是展示所有课程内容。 函数 yii\db\BaseActiveRecord::findAll() 的参数太少,在第 57 行的 D:\XAMPP\htdocs\valuefarm\algobox_admin\controllers\CourseController.php 中传递了 0 个参数,正好有 1 个预期
public function actionView($id)
{
$dataProvider = new ActiveDataProvider([
'query' => Coursecontent::findAll()->andFilterWhere(['coursecontent_id' => $id]),
]);
return $this->render('view', [
'model' => $this->findModel($id), 'dataProvider' => $dataProvider,
]);
}
您不需要为 ActiveDataProvider
获取数据,它会为您完成。
只需提供查询。
public function actionView($id)
{
$dataProvider = new ActiveDataProvider([
'query' => Coursecontent::find()->andFilterWhere(['coursecontent_id' => $id]),
]);
return $this->render('view', [
'model' => $this->findModel($id), 'dataProvider' => $dataProvider,
]);
}
您的错误是 findAll()
需要一个条件并将 return 结果,而不是 ActiveQuery
实例。
例如
Coursecontent::findAll(['coursecontent_id' => $id]);