ArgumentCountError в 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,
        ]);
    }

Но когда я изменил свой код на this. Он показывает это сообщение об ошибке. Здесь я пытаюсь показать все содержание курса. Слишком мало аргументов для функции yii\db\BaseActiveRecord::findAll(), 0 передано в D:\XAMPP\htdocs\valuefarm\algobox_admin\controllers\CourseController.php в строке 57 и ровно 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,
        ]);
    }

🤔 А знаете ли вы, что...
PHP позволяет создавать и отправлять электронные письма с использованием функции mail().


1 121
1

Ответ:

Решено

Вам не нужно получать данные для 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() ожидает условие и возвращает результаты, а не экземпляр ActiveQuery.

например

Coursecontent::findAll(['coursecontent_id' => $id]);