当前位置:首页 > CMS教程 > 其它CMS > 列表

yii2.0框架多模型操作示例【添加/修改/删除】

发布:smiling 来源: PHP粉丝网  添加日期:2022-02-27 10:18:07 浏览: 评论:0 

本文实例讲述了yii2.0框架多模型操作,分享给大家供大家参考,具体如下:

控制器:

  1. <?php 
  2.    
  3. namespace app\controllers; 
  4.    
  5. use Yii; 
  6. use yii\web\Controller; 
  7. use yii\base\Model; 
  8. use app\models\shopUsers; 
  9. use app\models\shopLeagueInfo; 
  10. use yii\web\NotAcceptableHttpException; 
  11.    
  12. class UserController extends Controller 
  13.   public $layout = 'shopUser'
  14.   public function actionSave($id
  15.   { 
  16.     $user = shopUsers::find()->where(['id' => $id])->one(); 
  17.     if (!$user) { 
  18.       throw new NotAcceptableHttpException('没有找到用户信息'); 
  19.     } 
  20.    
  21.     $league = shopLeagueInfo::findOne($user->league_id); 
  22.     if (!$league) { 
  23.       throw new NotAcceptableHttpException('没有找到加盟商信息'); 
  24.     } 
  25.    
  26.     //model设置 
  27.     $user->scenario = 'update'
  28.     $league->scenario = 'update'
  29.    
  30.     if ($user->load(\Yii::$app->request->post()) && $league->load(\Yii::$app->request->post())) { 
  31.       $isValid = $user->validate(); 
  32.       $isValid = $league->validate() && $isValid
  33.    
  34.       if ($isValid) { 
  35.         $user->save(false); 
  36.         $league->save(false); 
  37.         return $this->redirect(['user/save','id' => $id]); 
  38.       } 
  39.     } 
  40.    
  41.     return $this->render('save',['user' => $user,'league' => $league]); 
  42.   } 

model模型:

  1. <?php 
  2.    
  3. namespace app\models; 
  4.    
  5. use yii\db\ActiveRecord; 
  6.    
  7. class shopLeagueInfo extends ActiveRecord 
  8.   public function rules() 
  9.   { 
  10.     return [['user_real_name'],'required']; 
  11.   } 
  12.    
  13.   public function table() 
  14.   { 
  15.     // 
  16.   } 
  17.    
  18.   public function scenarios() 
  19.   { 
  20.     return [ 
  21.       'update' => ['user_phone'],//修改操作,值为表字段 
  22.     ]; 
  23.   } 

其他表同上。

views视图

  1. <?php 
  2. use yii\helpers\Html; 
  3. use yii\widgets\ActiveForm; 
  4.    
  5. $model = new app\models\saveForm(); 
  6. $form = ActiveForm::begin([ 
  7.   'id' => 'save-form'
  8.   'options' => ['class' => 'form-horizontal'], 
  9. ]) 
  10. ?> 
  11.    
  12. <?= $form->field($user,'user_real_name')->input('user_real_name') ?> 
  13. <?= $form->field($league,'user_phone')->input('user_phone') ?> 
  14.    
  15. <button>更新</button> 
  16. <?php ActiveForm::end() ?>

Tags: yii2.0多模型 yii2.0添加

分享到: