如何在此cakePHP视图中将数据传递给此HTML帮助程序方法?

I'm unpicking someone's project written in CakePHP. I am familiar with the MVC paradigm, just not with Cake.

The resulting HTML is a select dropdown. The data for this dropdown comes from the controller and is assigned as follows:

$this->set(compact('venues', 'eventTypes', 'positions', 'hms'));

where $hms is the array containing the data for the select element (defined from a query on the model). However in the view this is all I have for the dropdown:

echo $this->Form->input('Event.hm_id', array('label' => 'House Manager', 'empty' => '(none)', 'class' => 'chzn-selectaaa'));

In the view I was expecting to see some reference to the value of $hms. Where does the HTML form helper get the data to build the dropdown?

There is some auto-wiring magic that happens on the input Form helper that maps hms array to hm_id.

This piece of the CakePHP doc should help you understand how the magic is actually done. It is all based on naming conventions in both Tables and fields in the DB and the Model itself.

http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#creating-form-elements

Here is the API doc piece as well.

http://api.cakephp.org/2.6/class-FormHelper.html#_input

I hope this helps.