- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在学习 zf2,我面临一个涉及 2 个(最终更多)模块一起工作的问题。注意,我仔细阅读了this post (和相关的)这对我帮助很大。我将稍微解释一下这个问题:
id|field_name|field_value
1|国家|德国|
2|国家|法国|
3|性别|男|
4|性别|女|
5|tipo|汽车|
6|tipo|飞|
...
id|name|id_tipo|
1|菲亚特|5|
2|汉莎航空|6|
3|福特|5|
4|法航6|
...
(id_tipo 是一个选项 FK)
还要考虑:
作为测试,我已将此字段添加到我的表单类中,并且在查看和编辑模式下一切正常:
$this->add(
'type' => 'Zend\Form\Element\Select',
'name' => 'id_tipo',
'options' => array (
'label' => 'Tipo',
'empty_option' => 'Select',
'value_options' => array ('5' => 'Car', '6' => 'Fly' ) )
);
现在我想“链接”这两个模块:value_options 应该是来自 FrOption 的动态数组,所以我正在寻找实现此要求的最佳方法。
我认为一个解决方案可能是这样的:
这会是一个明智且可行的解决方案吗?在性能方面,您对它有何看法(选项表可能会增长)?如果有,您曾经使用过什么样的解决方案来解决类似的问题?
谢谢
最佳答案
This can be done easily by following the below 2 steps in Zend Framework2 Step 1.
add The instance of the adapter what instantiating form class in the controller action
$dbAdapter = $this->getServiceLocator()->get('Zend\Db\Adapter\Adapter');
$form = new TestForm ($dbAdapter);
Step 2 in your form
namespace Test\Form;
use Zend\Form\Form;
use Zend\Db\Adapter\AdapterInterface;
use Zend\Db\Adapter\Adapter;
class TestForm extends Form
{
protected $adapter;
public function __construct(AdapterInterface $dbAdapter)
{
$this->adapter =$dbAdapter;
parent::__construct("Test Form");
$this->setAttribute('method', 'post');
//your select field
$this->add(array(
'type' => 'Zend\Form\Element\Select',
'name' => 'name',
'tabindex' =>2,
'options' => array(
'label' => 'Author',
'empty_option' => 'Please select an author',
'value_options' => $this->getOptionsForSelect(),
)
));
// another fields
}
public function getOptionsForSelect()
{
$dbAdapter = $this->adapter;
$sql = 'SELECT id,name FROM newsauthor where active=1 ORDER BY sortorder ASC';
$statement = $dbAdapter->query($sql);
$result = $statement->execute();
$selectData = array();
foreach ($result as $res) {
$selectData[$res['id']] = $res['name'];
}
return $selectData;
}
}
And here you go you are ready to rock.I hope it helps you
关于php - zf2 表格 : populate select field with data coming from database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15551188/
我想在其他“已批准”域上放一个指向我网站的链接。当他们单击链接时,它会转到一个页面,该页面会检查引荐来源网址 ($_SERVER['HTTP_REFERRER']) 以确保它们来自已获准拥有我的链接的
我用这一行创建一个 defaultdict 并使用列表作为值对其进行初始化。 page_by_due_date = defaultdict(list) due_pages_list = [] for
我有一个使用大量内存的 Java 程序。我使用 jmap -histo:live 来追踪正在使用所有内存的对象。只有几种类型占用了大部分内存,其中超过 1M,但我无法判断引用的来源来自。 有什么方法可
我正在尝试使用 Android 电话管理器结束调用(新的调用筛选 API 不适合我)。我在网上找到了很多例子,都与我下面的代码非常相似。它编译得很好,但我在运行时遇到了 ClassCastExcept
我有一个用 Visual Studio 编写的小型 C++ dll(当然)。在解决方案代码中,我有一个仅包含版本信息的资源文件。 奇怪的是,当我将已编译的 dll 分片到 Visual Studio
所以我明白了什么是装箱和拆箱。它什么时候出现在现实世界的代码中,或者在什么例子中它是一个问题?我无法想象做这样的事情: int i = 123; object o = i; //
我们的 winforms 应用程序与 MS Word 交互,我们在生成文档并希望在应用程序前面的 Word 中显示它时运行此代码: [setup w as a Word interop object]
我最近已从Mac开发环境切换到Windows开发环境。我广泛用于Chrles代理来捕获网络流量,请求和响应详细信息。现在,我已经在Windows 8中安装了Charles Proxy 3.7版。但是,
假设我有一个带有电子邮件表单元素的表单;例如,当我在此字段中输入 1 个字母并按“确定”时,我会在工具提示中收到一条用我的语言(法语)显示的消息:“Veuillez saisir une adress
解释问题: 我现在已经尝试让 firebase_messaging 工作近一周。 我成功设置了一个旧版 Xcode APNS 应用程序,该应用程序在生成所有新证书等后工作。 但是使用 firebase
我想知道域实现的常见做法是什么。首先设计需要持久性或数据库模式的业务对象,然后从实体关系图(然后是 ORM poco*)生成它? 我要开始一个解决方案,但我想知道哪个是最优选的“模式”。 (*由 NH
我看到一个用 Node.js 构建的应用程序,但我不明白 describe 和 it 这两个词如何可用? 在浏览器控制台中,它 是一个函数,describe 抛出一个ReferenceError。 我
我看到一个用 Node.js 构建的应用程序,但我不明白 describe 和 it 这两个词如何可用? 在浏览器控制台中,它 是一个函数,describe 抛出一个ReferenceError。 我
所以我正在尝试学习 django 并遵循本教程:https://docs.djangoproject.com/en/1.10/intro/tutorial01/ 按照教程制作民意调查应用程序后,当我回
故事 我已经在 OpenGL 中编码大约一年了(在相同的硬件上),我最近才得到像上图中那样的工件。它们在短时间内(几分钟)连续运行我的程序后出现,并出现在任何地方:从写字板(见图片)到我的桌面和任务栏
我对下面名为test(第 3 行)的函数的使用感到好奇: var pattern = /[1-9][1-9]{5}/; var str = 'this is 248760!'; alert(patte
当我正在使用的 CodeIgniter 应用程序尝试特定的 UPDATE 操作时,我收到一个非常奇怪的数据库错误。 Active Record 调用是: $this->db->update('eval
我的目标是显示一张图片并将其慢慢带到前台(并在主要时间内延长)。我希望当我在 div/img 上检测到事件 onmouseover 时可以完成此操作。 目前,我使用隐藏属性,但我不喜欢它,因为它就像:
我有一个页面,我通过查询字符串发送了一个参数。 如果我使用 Request.QueryString["Format"] 检索它,我会遇到类型 'CD\DVD' 的问题。它作为“CD\\DVD”返回。重
我在 ListView 中遇到了一个奇怪的行为,只有一个 ListView,我的应用程序中有很多 ListView,但只有在这种情况下才会发生。 我会试着解释一下,当我滚动到底部时,好吧,滚动会停止。
我是一名优秀的程序员,十分优秀!