アクション名の決定方法を変えてみた
やっぱり
/?action_hogehoge=true
がイマイチ馴染めないので、今まで使っていた
/?action=hogehoge
形式で、かつPOST時にsubmitボタン毎にアクションを振り分けられる様に
Ethna_Controller::_getActionName_Form()
を変えてみた。*1
<?php //... function _getActionName_Form() { $action_prefix = "action";//event,act,... if (isset($_SERVER['REQUEST_METHOD']) == false) { return null; } if ($_SERVER['REQUEST_METHOD'] == "GET") { $tmp_vars = $_GET; } else if ($_SERVER['REQUEST_METHOD'] == "POST") { $tmp_vars = $_POST; } if (array_key_exists($action_prefix, $tmp_vars) && is_array($tmp_vars[$action_prefix])) { return array_shift(array_keys($tmp_vars[$action_prefix])); } elseif (array_key_exists($action_prefix, $tmp_vars) && $tmp_vars[$action_prefix] != '') { return $tmp_vars[$action_prefix]; } else { return null; } }
取り合えずこれでGET時の
?action=hogehoge
動作実現と同時に
<input type="submit" name="action[hogehoge]" value="ほげ"> <input type="submit" name="action[fugafuga]" value="ふが">
でApp_Action_Hogehoge(),App_Action_Fugafuga()のアクション振り分けが出来た。
異常時チェックが甘い気がするので後で用確認。
*1:まだ動作全容を把握出来ていないうちに手を付けるのがそこかよ