mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2025-01-18 18:46:17 +00:00
Merge pull request #8756 from cakephp/issue-8628
Restore backwards compatibility with old 2.x in FormHelper.
This commit is contained in:
commit
61c0415734
2 changed files with 32 additions and 1 deletions
|
@ -8699,6 +8699,36 @@ class FormHelperTest extends CakeTestCase {
|
|||
$this->assertTags($result, $expected);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that the action key still uses the model as the implicit controller
|
||||
* when the url option is undefined. While the action parameter is deprecated
|
||||
* we need it to continue working for the duration of 2.x
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testCreateUrlImpliedController() {
|
||||
$restore = error_reporting(E_ALL ^ E_USER_DEPRECATED);
|
||||
$this->Form->request['controller'] = 'posts';
|
||||
$result = $this->Form->create('Comment', array(
|
||||
'action' => 'addComment',
|
||||
'id' => 'addCommentForm',
|
||||
'type' => 'POST'
|
||||
));
|
||||
$expected = array(
|
||||
'form' => array(
|
||||
'action' => '/comments/addComment',
|
||||
'id' => 'addCommentForm',
|
||||
'method' => 'post',
|
||||
'accept-charset' => strtolower(Configure::read('App.encoding'))
|
||||
),
|
||||
'div' => array('style' => 'display:none;'),
|
||||
'input' => array('type' => 'hidden', 'name' => '_method', 'value' => 'POST'),
|
||||
'/div'
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
error_reporting($restore);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the onsubmit option for create()
|
||||
*
|
||||
|
|
|
@ -382,6 +382,7 @@ class FormHelper extends AppHelper {
|
|||
if (isset($options['action'])) {
|
||||
trigger_error('Using key `action` is deprecated, use `url` directly instead.', E_USER_DEPRECATED);
|
||||
}
|
||||
|
||||
if (is_array($options['url']) && isset($options['url']['action'])) {
|
||||
$options['action'] = $options['url']['action'];
|
||||
}
|
||||
|
@ -393,7 +394,7 @@ class FormHelper extends AppHelper {
|
|||
|
||||
if ($options['action'] === null && $options['url'] === null) {
|
||||
$options['action'] = $this->request->here(false);
|
||||
} elseif (is_array($options['url'])) {
|
||||
} elseif (empty($options['url']) || is_array($options['url'])) {
|
||||
if (empty($options['url']['controller'])) {
|
||||
if (!empty($model)) {
|
||||
$options['url']['controller'] = Inflector::underscore(Inflector::pluralize($model));
|
||||
|
|
Loading…
Add table
Reference in a new issue