Error: getting unknown property: yii\web\Application::generateid

Error: getting unknown property: yii\web\Application::generateid

我在 studentsController.php 中有以下代码,用于将数据从表单添加到 2 tables,但我收到错误。就是给studentstable添加,然后给userstable也添加一些数据。我觉得我应该通过“使用”关键字在顶部添加一些东西,但我没有 know.please 帮助。

public function actionCreate() {
    $model = new model();
    $user = new Users();

    if ($model->load(Yii::$app->request->post())) {

        $model->id = Yii::$app->generateid->getGUID();  //this line caused the error
        $model->save();
        $studentId = $model->id;
        if($user->load(Yii::$app->request->post()))
        {
            $user->id = $model->id;
            $user->firstname = $model->firstname;
            $user->lastname = $model->lastname;
            $user->username = $model->phone;
            $user->password = 'pass123';   //default password
            $user->role = 'student';
            $user->save(false);
        }
        return $this->redirect(['view', 'id' => $model->id]);
    } else {
         return $this->render('create', [
             'model' => $model,
             'user' => $user,                 
         ]);
    }
}

您的 web.php 中似乎漏掉了 generateid 应该是这样的

GenerateIDs.php 在@app/components 文件夹

<?php 
namespace app\components; 

class GenerateIDs extends \yii\base\Component
{
    public function getGUID()
    {
       //do your stuff here
    }
    //....
}

然后在你的 @app/config/web.php 你有类似

<?php
return [
    'components' => [
        'generateid' => [
            'class'=>'app\components\GenerateIDs',
            // other configurations for the component
        ],
    ],
];

然后你就可以在你的应用中随意使用了

public function actionCreate() {
$model = new model();
$user = new Users();

if ($model->load(Yii::$app->request->post())) {

    $model->id = Yii::$app->generateid->getGUID();  //this line caused the error
    $model->save();
    $studentId = $model->id;
    if($user->load(Yii::$app->request->post()))
    {
        $user->id = $model->id;
        $user->firstname = $model->firstname;
        $user->lastname = $model->lastname;
        $user->username = $model->phone;
        $user->password = 'pass123';   //default password
        $user->role = 'student';
        $user->save(false);
    }
    return $this->redirect(['view', 'id' => $model->id]);
} else {
    return $this->render('create', [
                'model' => $model,
                'user' => $user,                 
    ]);
}

请看Yii2 guide on Components