本文实例讲述了yii2.0框架多模型操作。分享给大家供大家参考,具体如下:
控制器:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
<?php namespace app\controllers; use Yii; use yii\web\Controller; use yii\base\Model; use app\models\shopUsers; use app\models\shopLeagueInfo; use yii\web\NotAcceptableHttpException; class UserController extends Controller { public $layout = 'shopUser' ; public function actionSave( $id ) { $user = shopUsers::find()->where([ 'id' => $id ])->one(); if (! $user ) { throw new NotAcceptableHttpException( '没有找到用户信息' ); } $league = shopLeagueInfo::findOne( $user ->league_id); if (! $league ) { throw new NotAcceptableHttpException( '没有找到加盟商信息' ); } //model设置 $user ->scenario = 'update' ; $league ->scenario = 'update' ; if ( $user ->load(\Yii:: $app ->request->post()) && $league ->load(\Yii:: $app ->request->post())) { $isValid = $user ->validate(); $isValid = $league ->validate() && $isValid ; if ( $isValid ) { $user ->save(false); $league ->save(false); return $this ->redirect([ 'user/save' , 'id' => $id ]); } } return $this ->render( 'save' ,[ 'user' => $user , 'league' => $league ]); } } |
model模型:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<?php namespace app\models; use yii\db\ActiveRecord; class shopLeagueInfo extends ActiveRecord { public function rules() { return [[ 'user_real_name' ], 'required' ]; } public function table() { // } public function scenarios() { return [ 'update' => [ 'user_phone' ], //修改操作,值为表字段 ]; } } |
其他表同上。
views视图
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?php use yii\helpers\Html; use yii\widgets\ActiveForm; $model = new app\models\saveForm(); $form = ActiveForm::begin([ 'id' => 'save-form' , 'options' => [ 'class' => 'form-horizontal' ], ]) ?> <?= $form ->field( $user , 'user_real_name' )->input( 'user_real_name' ) ?> <?= $form ->field( $league , 'user_phone' )->input( 'user_phone' ) ?> <button>更新</button> <?php ActiveForm:: end () ?> |
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/qq_42176520/article/details/99549899