2015-08-19 16:57:41 2541次浏览 2条回答 0 悬赏 20 金钱

因做一个下拉列表,下拉列表的数据,来自表yii_event_type,如下:
1 马拉松
2 路跑
3 越野跑
4 自行车
5 铁人三项
生成的类文件名:EventType.php,这里我想在另一个类(ReleseEvent.php)里使用这些数据,在ReleseEvent.php写了如下函数:

/**
 *  获取赛事类型
 * @return mixed
 */

public function getEventType(){
    $data = EventType::find()->all();

    return $this->data;
}

在ReleseEventController里写了以下代码:

public function actionCreate()
{
    $model = new ReleseEvent();

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        return $this->redirect(['view', 'id' => $model->id]);
    } else {
        $data = $model->getEventType();
        return $this->render('create', [
            'model' => $model,$data => $model->data,
        ]);
    }
}

访问,弹出以下错误:

Unknown Property – yii\base\UnknownPropertyException

请指点迷津,很疑惑这一块,所有分数,奉上!

最佳答案

  • naivefang 发布于 2015-08-19 17:48 举报

    鉴于你提供的代码以及错误信息实在可怜,我就目前的代码说下你的问题吧:

    public function getEventType(){
        $data = EventType::find()->all();
        return $this->data;
    }
    

    这个函数,$data取值后,干嘛了?我理解你这里应该是要return $data而非return $this->data

    第二个问题:

    public function actionCreate()
    {
        $model = new ReleseEvent();
    
        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            return $this->redirect(['view', 'id' => $model->id]);
        } else {
            $data = $model->getEventType();
            return $this->render('create', [
                'model' => $model,$data => $model->data,
            ]);
        }
    }
    

    这里

    return $this->render('create', [
        'model' => $model,$data => $model->data,
    ]);
    

    这句里面,$data => $model->data是要干嘛?如果是想要把$data的值传到模板里面,你这里应该是:

    return $this->render('create', [
        'model' => $model,'data'=> $data,
    ]);
    

    ps:建议你好好把PHP的基础语法什么的看一下,这些错误出得都有点莫名其妙。

    1 条回复
    回复于 2015-08-20 14:18 回复

    感谢,听从建议!

    觉得很赞
  • 回答于 2015-08-19 17:40 举报

    看详细的错误提示,会有具体到哪个文件哪一行哪个属性的信息提示的~

    return $this->render('create', [
        'model' => $model,
        'data' => $data,
    ]);
    
    1 条回复
    回复于 2015-08-20 14:16 回复

    感谢,已找到原因!

您需要登录后才可以回答。登录 | 立即注册
了然听雨
主管

了然听雨

注册时间:2015-06-08
最后登录:2016-04-21
在线时长:12小时34分
  • 粉丝5
  • 金钱435
  • 威望0
  • 积分555

热门问题