两个类之间调用数据,希望能得到一个详细的讲解 [ 2.0 版本 ]
因做一个下拉列表,下拉列表的数据,来自表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
请指点迷津,很疑惑这一块,所有分数,奉上!
最佳答案
-
鉴于你提供的代码以及错误信息实在可怜,我就目前的代码说下你的问题吧:
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 条回复KillMeAgain 觉得很赞
其他 1 个回答
了然听雨
注册时间:2015-06-08
最后登录:2016-04-21
在线时长:12小时34分
最后登录:2016-04-21
在线时长:12小时34分
- 粉丝5
- 金钱435
- 威望0
- 积分555