2010-04-21 73 views
0

目前我正在开发一个CakePHP,它将列出各种业务。CakePHP表单助手数据库交互

在数据库中,有一个为企业表,列出他们像这样:

ID |名称|地址|城市|状态| state_id | zip |网址

状态栏是美国的缩写(上市目的)CA,AK,FL等和STATE_ID与状态表中的ID相匹配:

ID |名称| state_abbr

我有一个admin_add.ctp模板与表单助手插入新的业务。
对于进入一个企业的状态,我将有一个下拉列出所有的状态。但是,如何使数据库插入,以便在我提交表单以添加业务时知道如何添加状态缩写和状态ID?

回答

0

我想通了。
在我的业务控制器中,我有var $uses = array('business', 'state'),然后在添加功能中,我可以将所有状态数据传递到添加业务页面的视图。
然后在添加业务视图中,我设置了一个将state_id链接到州名的关联数组。然后我可以通过$form->input('state_id', array('options' => $stateArray))

0

businesses表中只保存state_id,您可以随时从states表中随时恢复state_abbr。 (因此请从businesses删除state字段)。为了避免每次都加入,你总是可以读一次states表,然后有一个映射state_id => array(“name”=> something,“state_abbr”=> xy)来更快地检索那些信息,如果你需要很多次在同一届会议

+0

WRT给你所讨论的“映射”,因为状态不太可能发生显着变化,每当我像这样处理它们时,我只是将它们编码成一个数组,我可以从我的应用程序的任何位置调用它。使它超快速,可以从任何地方访问。 – 2010-04-21 16:00:16

+0

什么我想包裹我的头,将是如何有一个状态列表选择,但然后当他们保存它,它会提交状态ID不是名称。 – xtine 2010-04-23 01:27:35