首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

保存yii 1下拉列表中的另一个字段值而不是id

在Yii 1中,如果你想保存下拉列表中的另一个字段值而不是id,你可以使用以下步骤:

  1. 首先,你需要在数据库表中添加一个新的字段来存储下拉列表中的另一个字段值。假设你的表名为example_table,你可以添加一个名为another_field的字段。
  2. 在Yii 1的模型类中,找到对应的模型文件(通常位于protected/models目录下),比如ExampleModel.php。在该文件中,你需要添加一个新的属性来映射新添加的字段。例如:
代码语言:php
复制
class ExampleModel extends CActiveRecord
{
    public $another_field;
    
    // ...
}
  1. 接下来,在你的视图文件中,比如_form.php,你需要修改下拉列表的代码,以便将下拉列表的值与新添加的属性关联起来。假设你的下拉列表的名字为dropdown,你可以使用CHtml::activeDropDownList方法来生成下拉列表。例如:
代码语言:php
复制
echo $form->dropDownList($model, 'another_field', $listData, array('prompt' => '请选择'));

这里的$listData是一个关联数组,其中键表示下拉列表的值,值表示下拉列表的显示文本。

  1. 最后,在控制器的动作方法中,比如actionCreateactionUpdate,在保存模型之前,将下拉列表的值赋给新添加的属性。例如:
代码语言:php
复制
public function actionCreate()
{
    $model = new ExampleModel;
    
    if(isset($_POST['ExampleModel']))
    {
        $model->attributes = $_POST['ExampleModel'];
        $model->another_field = $_POST['ExampleModel']['another_field'];
        
        if($model->save())
        {
            // 保存成功
        }
    }
    
    $this->render('create', array('model' => $model));
}

这样,当你保存模型时,下拉列表中选择的另一个字段值将会保存到数据库的新字段中。

关于Yii 1的更多信息和使用方法,你可以参考腾讯云的Yii 1产品介绍页面:Yii 1产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Yii2 学习笔记之 GridView DetailView

在 GridView 小部件是从数据提供者获取数据,并以一个表格形式呈现数据。表每一行代表一个单独数据项,列表示该项目的属性。...在 DataGrid 小部件列是在 yii\grid\Column 类中进行配置。它代表一个模型属性,并可以进行过滤和排序。 GridView 列显示常用操作 <?...($model){ return Html::a('属性列表', ['test/index','id'=>$model->id]); }...表,调用他分类名,所以为了性能,在这里join一下 $query->join('articleType'); //如果增加字段需要表头排序,则可加入以下代码...' => $this->article_type_id, ]); // 时间搜索,用户在view上面输入是字符串时间,数据库存放是时间戳,需转换匹配

2.2K60
  • Yii2框架中一些折磨人

    - select(['id']) //只取出'id'列 - where(['id'= 20]) - one(); $room- save(); //保存,会发现此行其它字段都被写成默认值了...总结问题 这个例子问题在于: 我从数据库取出了一行,也就是代码$room,但是只取出了id字段,而其他字段自然就是默认。...当我$room- save()时候,那些是默认字段也被保存到数据库里去了。what!? 也就是说,当你想节约资源,不取出所有字段时候,一定要注意不能保存,否则,很多数据会被莫名修改为默认。...修改或继承ActiveRecord,使得,当此对象由find()新建,且字段没有完全取出,调用save()方法时,只保存取出过字段,其他字段被忽略。 你Transaction生效了吗?...$b- save(); //name字段合法,可以正常保存。 $transaction- commit(); //提交后,发现$a保存失败,$b保存成功。

    4.3K41

    Yii数据库操作方法指南

    ,当query()不是,他返回一个代表结果集对象 // YIICDbTransaction类用于事务 // 首先,建立一个连接 $connection = Yii::app()->db; //...// 因此,读取一行记录,列将自动填充到对应PHP对象 // 比如这样: $connection = Yii::app()->db; $sql = "SELECT username, email...AR类一个属性表示,如果试图通过属性访问表没有字段,将会抛出一个异常。...'id' 是关联表一个字段,但他不是主键,现在将它指定为主键 } // 实例化一个AR,填写信息(类似于填充用户提交信息),然后保存 $post = new Post; $post->title...; $posts=$user->posts(array('condition'=>'status=1'));        // 返回都是AR对象, 不是数据 // 统计查询 class Post

    1.5K70

    Yii2工作一些方法技巧

    ` DESC) `tmpA` GROUP BY `post_id` sql计算字段相同重复次数,并排序 $query = static::find() ->select(['package_uuid...Yii::app()->request->url 只想获取url参数部分: # r=news&id=1 Yii::$app->getRequest()->queryString 获取某个参数...()->getReferrer() 前端显示 英文不换行问题 当GridView和DetailView列表某一条内容为连续英文或数字(比如网站链接等)时,该内容会不换行,导致该列宽度被顶特别长...-GridView 让关联字段带搜索和排序功能 情境要求: 要在订单(Order)视图gridview显示出客户(Customer)姓名,并使其具有与其它字段相同排序和搜索功能。...数据库结构 订单表order含有字段customer_id 与 客户表customerid字段关联 首先确保在Order Model包含以下代码: public function getCustomer

    3.3K31

    Yii2之数据库迁移(Migrate)

    在开发和维护一个数据库驱动应用程序时,数据库结构会随代码改变改变。...就是说我并不直接写字段类型,我只是写不同数据库类似的字段定义。举个例子: mysql数据库中有text数据类型,用来存储大文本一类数据。...mssql数据库并没有text数据类型,但是有个类似的数据类型,叫做ntext。如果在数据库迁移到mysql时候直接写实体字段类型text,那么如果改换数据库为mssql时候就会很麻烦。...如下是所有这些数据库访问方法列表yii\db\Migration::execute(): 执行一条 SQL 语句 yii\db\Migration::insert(): 插入单行数据 yii\db...): 删除一张表 yii\db\Migration::truncateTable(): 清空表所有数据 yii\db\Migration::addColumn(): 加一个字段 yii\db\Migration

    1.7K41

    定义多场景表单

    定义多场景表单 下面是一个带有添加/编辑文章表单示例: namespace app\forms; use Yii; use app\models\Article; class ArticleForm...; } } 以上表单,add方法就是添加文章业务逻辑,edit方法是编辑文章咯,可是两个业务要验证用户端输入参数都包含了title和content,所以要通过scenarios方法来声明两个场景要校验属性名称...$form->load(Yii::$app->request->post(), '')){ return '接收参数失败'; } if($form->edit()){ return '保存完毕...return $form->firstError[0]; } } 如果表单定义了多场景,执行add或edit这些业务处理方法前(其实是validate被执行之前),一定要先设定scenario属性(属性就是场景标识...) 最终其实就是为了告诉validate要对哪些属性进行validate,不是盲目地全部validate,毕竟不同场景下有不同校验字段 深入应用 其实不能仅仅把场景理解为使用在validate控制上

    44741

    Yii2 ActiveRecord 模型

    例如,['and', 'type=1',['or','id=1','id=2']]将会生成type=1 AND (id=1 OR id=2) between: 第一个操作数为字段名称,第二格和第三个操作数代表是这个字段取值范围...例如: ['between','id',1,10]将会生成id BETWEEN 1 AND 10 in: 第一操作数为字段名称或者数据库表达式。...例如:['in','id',[1,2,3]] 将生成id IN(1,2,3) like: 第一个操作数应为一个字段名或数据库表达式,第二个操作数可以是字符串或数组,代表第一个操作数需要模糊查询。...not exists:该操作数必须是代表子查询yii\db\Query一个实例,会构建一个NOT EXISTS表达式。 \>或 ','age',10] 将会生成 age > 10 关联查询 场景:order表主键id 对应 order_log表 order_id,现在查询order表关联order_log

    1.6K10

    Yii使用技巧大汇总

    1 2 3 if(Yii::app()->user->hasFlash('submit')){ echo Yii::app()->user->getFlash('submit'); } 一般我们是跳转到列表页...有重复名子'), CStatePersister是yii核心组件,提供了基于文件数据保存方式,可以不在同请求中使用 COutputCache 即是一个组件,又是一个filter,前者时候用于在...("id"=>$data->id));', ), 修改updateButtonUrl为编辑贴子 如何用gridview生成一个代搜索管理列表 1、在Modelrules 设定可以搜索属性 复制代码...复制代码 代码如下: Yii::app()->request->url; ctype_开始几个函数,用于检查字任串是不是符合要求,代替了简单正则表达式 CControllersetPageState...可以保存同一页POST表单状态 如何通过BEhavior修改CActiveRecord?

    2.4K31

    yii2 modal弹窗之ActiveForm ajax表单异步验证

    前面我们讲述了yii2如何使用modal以及yii2 gridview列表内更新操作如何使用modal问题,本以为modal要告一段落可以开始新的话题了,但是实际问题往往超乎想像,这不modal弹窗提交表单说是怎么验证问题又出来了...yii2,ActiveForm默认做了客户端验证,但是表单提交,却不是无刷新。也就是常常看到表单提交后页面会刷新。...这往往不是我们想要,此时就需要给validateUrl设置一个路由地址,其所要请求操作意义就在于异步做验证!...一般而言,上面的操作没有问题,但是总是会有特殊的人遇到特别的问题,问题突出,我们下面以一个案例进行说明: 有小伙伴遇到要验证字段是unique类型,更新操作时候,这可傻了眼了,怎么都处理不好了,我们下面给出一个针对字段...用下面的可能会好一点,万一你字段也是unique呢! 首先我们把ActiveFormbegin配置修改如下: $validationUrl = ['validate-form']; if (!

    1.5K21

    yii2.0验证

    你可以指定以下规则类型之一: 核心验证器昵称,比如 required、in、date,等等。请参考 核心验证器章节查看完整核心验证器列表。 模型类某个验证方法名称,或者一个匿名方法。...; } else { echo $error; } Note: 不是所有的验证器都支持这种形式验证。...($attribute, $params) 若某特性验证失败了,该方法/函数应该调用 yii\base\Model::addError() 保存错误信息到模型内。...> 幕后运作过程是这样yii\widgets\ActiveForm 会读取声明在模型类验证规则, 并生成那些支持支持客户端验证验证器所需 JavaScript 代码。...在这段 JavaScript 代码,你可以使用以下预定义变量: attribute:正在被验证模型特性名称。 value:进行验证

    2.6K61

    yii2组件之下拉框带搜索功能示例代码(yii-select2)

    ' => $data, 'options' => ['placeholder' => '请选择...'] ]); 但是如果你表单是ActiveForm生成,但是往往字段不是字段怎么办呢?...更好办啦,以上面的为例,你只需要指定$model->title = ['title1', 'title2'];即可 基本上就是这么回事,我们也就很简单实现了下拉选择并可搜索功能。....'], ]); 多选添加默认同上 眼尖注意到了,加了一个multiple选项。非ActiveForm生成表单操作一致。 我们看看效果是怎么样。...举一个例子,我们现在要查询某一个书名,但是我们数据量大概有100W,很简单,这需要我们根据你搜索结果异步获取下拉框里面的数据。未完待续,晚点做进一步说明。...来,上家伙,我们来看看如何使用异步搜索功能,工作尤其是进行关联数据时候其用途更是大大,方便性嘛,看看就知道了,好用不得了。

    1.1K20

    使用Bucket字段来快速分组你报表记录

    in Activity reports 为下拉列表添加一层Bucket分组 1.在Source Column,选择你希望添加bucket字段。...重要:下拉列表bucket名字必须包含至少一个字母或符号。如果一个下拉列表bucket字段名称只包含数字的话,这个bucket字段将不能保存。...4.为了快速查找下拉列表,可以在快速查找框输入下拉列表首字母来查找相应下拉列表。 5.选择适当名将他们拖动到bucket。...注意:你只能将激活下拉列表进行分组。没有激活下拉列表不会显示出来 6.将没有进入bucket分组移入到Other组,此功能可通过启用显示非bucket为“Other”。...下拉列表bucket列子:Industry Types 1.创建或编辑一个标准客户报表,确保在报表中会存在一些记录 2.在报表构建器字段面板,双击点击Bucket字段或将它拖动到报表设计面板

    1.7K20

    Jmix 2.1 发布

    有关完整详细信息和升级说明,请参阅文档最近更新[1]页面。 新扩展组件 我们将一些之前在 Jmix v.1 基于经典 UI 扩展组件迁移了过来。...另一个新功能是可以在行内计算聚合。需要配置聚合列时,请将 dataGrid 组件 aggregatable 属性设置为 true,将 aggregation 元素添加到列并选择聚合类型。...genericFilter 组件在运行时是完全可自定义,并提供高级条件,但可能不是特别容易使用。 propertyFilter 对用户来说很简单,但需要开发人员事先配置。...新方法是,需要在下拉列表组件定义 itemsQuery 嵌套标签,并编写类似下面的查询语句: <entityComboBox id="departmentField" property="department...一旦你在方法体开始输入字符,则会出现一个代码自动完成下拉列表,其中显示了可用 bean、UI 组件、局部变量和类字段。尚未注入到类 Bean 和 UI 组件将以斜体字显示。

    25310

    低代码系列之代码生成器外键配置--foreign

    这里”外键“并不是指数据库外键 这里“外键”配置只是为了方便表格渲染,表单渲染,外键查找等 比如 goods模型有一字段 category_id商品分类 1.现在让你添加一个商品,并且选择商品分类...,那你是不是要创建分类表,然后在创建商品时候将分类查询出来,前端在渲染,这样你才能选择商品分类 2.现在让你实现查询某个分类下商品,那你是不是也要先建分类表,然后添加分类,然后在商品页面做一个下拉框...,这个下拉框放置就是商品分类,只有这样你才能实现查询某个分类下商品 3.现在让你在商品列表渲染时候把商品分类用中文表示出来(一般保存都是分类id),那你是不是要创建关联查询才能实现这样需求...现在你只需要创建category模型然后在goods模型配置上外键属性,这样生成器会自动帮你解决上面的问题。...当前模型外键字段 refer: 'id', // 关联表字段 // 用作表单,表格取值 referLabel: 'name', // 关联表用于展示字段

    29920
    领券