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


Posted in PHP onApril 13, 2020

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

控制器:

<?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模型:

<?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视图

<?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程序设计有所帮助。

PHP 相关文章推荐
一个用php实现的获取URL信息的类
Jan 02 PHP
PHP 手机归属地查询 api
Feb 08 PHP
基于curl数据采集之单页面采集函数get_html的使用
Apr 28 PHP
Windows中使用计划任务自动执行PHP程序实例
May 09 PHP
PHP链接MySQL的常用扩展函数
Oct 23 PHP
smarty模板引擎中变量及变量修饰器用法实例
Jan 22 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
Sep 22 PHP
Session 失效的原因汇总及解决丢失办法
Sep 30 PHP
PHP处理Ajax请求与Ajax跨域问题
Feb 13 PHP
Laravel框架Request、Response及Session操作示例
May 06 PHP
PHP封装cURL工具类与应用示例
Jul 01 PHP
php抽象方法和普通方法的区别点总结
Oct 13 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
Apr 13 #PHP
php回调函数处理数组操作示例
Apr 13 #PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
Apr 13 #PHP
laravel使用数据库测试注意事项
Apr 10 #PHP
为你的 Laravel 验证器加上多验证场景的实现
Apr 07 #PHP
再谈Yii Framework框架中的事件event原理与应用
Apr 07 #PHP
Yii框架组件的事件机制原理与用法分析
Apr 07 #PHP
You might like
PHP函数常用用法小结
2010/02/08 PHP
php setcookie函数的参数说明及其用法
2014/04/20 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
浅谈JavaScript之事件绑定
2013/07/08 Javascript
购物车选中得到价格实现示例
2014/01/26 Javascript
javascript cookie的简单应用
2016/02/24 Javascript
Node.js实现数据推送
2016/04/14 Javascript
全面解析Bootstrap中nav、collapse的使用方法
2016/05/22 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
webpack进阶——缓存与独立打包的用法
2017/08/02 Javascript
浅谈js中的this问题
2017/08/31 Javascript
详解vue-cli本地环境API代理设置和解决跨域
2017/09/05 Javascript
JavaScript中var、let、const区别浅析
2018/06/24 Javascript
vue的三种图片引入方式代码实例
2019/11/19 Javascript
使用JavaScript通过前端发送电子邮件
2020/05/22 Javascript
Python队列的定义与使用方法示例
2017/06/24 Python
详解python中executemany和序列的使用方法
2017/08/12 Python
Python实现的十进制小数与二进制小数相互转换功能
2017/10/12 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
django利用request id便于定位及给日志加上request_id
2018/08/26 Python
python制作填词游戏步骤详解
2019/05/05 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
2020/04/20 Python
HTML5中的Web Notification桌面右下角通知功能的实现
2018/04/19 HTML / CSS
Timberland美国官网:全球领先的户外品牌
2016/08/15 全球购物
英国绿色商店:Natural Collection
2019/05/03 全球购物
资深地理教师自我评价
2013/09/21 职场文书
建筑工程自我鉴定
2013/10/18 职场文书
校园公益广告语
2014/03/13 职场文书
乡镇食品安全责任书
2014/07/28 职场文书
2015年毕业生自我鉴定模板
2014/09/19 职场文书
上课说话检讨书500字
2014/11/01 职场文书
群众路线教育实践活动心得体会(四风)
2014/11/03 职场文书
远程教育培训心得体会
2016/01/09 职场文书
2019年恭贺升学祝福语集锦
2019/08/15 职场文书
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python