mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 11:28:25 +00:00
Restore backwards compatibility with old 2.x in FormHelper.
Restore the behavior of the string 'action' option to its former glory. While we've deprecated this it needs to continue working as it did before. Refs #8628
This commit is contained in:
parent
ab79ab9c55
commit
ade9d8a811
2 changed files with 33 additions and 1 deletions
|
@ -8699,6 +8699,37 @@ class FormHelperTest extends CakeTestCase {
|
||||||
$this->assertTags($result, $expected);
|
$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()
|
* Test the onsubmit option for create()
|
||||||
*
|
*
|
||||||
|
|
|
@ -382,6 +382,7 @@ class FormHelper extends AppHelper {
|
||||||
if (isset($options['action'])) {
|
if (isset($options['action'])) {
|
||||||
trigger_error('Using key `action` is deprecated, use `url` directly instead.', E_USER_DEPRECATED);
|
trigger_error('Using key `action` is deprecated, use `url` directly instead.', E_USER_DEPRECATED);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_array($options['url']) && isset($options['url']['action'])) {
|
if (is_array($options['url']) && isset($options['url']['action'])) {
|
||||||
$options['action'] = $options['url']['action'];
|
$options['action'] = $options['url']['action'];
|
||||||
}
|
}
|
||||||
|
@ -393,7 +394,7 @@ class FormHelper extends AppHelper {
|
||||||
|
|
||||||
if ($options['action'] === null && $options['url'] === null) {
|
if ($options['action'] === null && $options['url'] === null) {
|
||||||
$options['action'] = $this->request->here(false);
|
$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($options['url']['controller'])) {
|
||||||
if (!empty($model)) {
|
if (!empty($model)) {
|
||||||
$options['url']['controller'] = Inflector::underscore(Inflector::pluralize($model));
|
$options['url']['controller'] = Inflector::underscore(Inflector::pluralize($model));
|
||||||
|
|
Loading…
Reference in a new issue