【发布时间】:2015-08-10 08:40:46
【问题描述】:
我的应用程序中有一个登录表单。在某些情况下,我想从控制器传递数据。
表单是这样创建的:
<?= $this->Form->create(null, ['url' => ['controller' => 'Users', 'action' => 'login']]); ?>
<?= $this->Form->input('email', ['label' => __('E-mail')]); ?>
<?= $this->Form->input('password', array('label' => __('Password'))); ?>
在控制器中,我想修复 email 字段的默认值,但在多次尝试 set 之后,request->data em>,等等...找不到怎么做。
$this->set('email', 'whatever');
$this->set('User.email', 'whatever');
$this->set('user.email', 'whatever');
$this->request->data['user']['email'] = 'whatever';
$this->request->data['User']['email'] = 'whatever';
$this->set('user', $this->Accounts->Users->newEntity(['email' => 'whatever']));
在 CakePHP 2 中,这只是简单地写在 $this->request->data 上;
$this->request->data['User']['email'] = 'whatever';
请注意,登录表单显示为一个元素,因此它可以在应用程序视图中的任何位置重复使用。
【问题讨论】:
-
尝试使用
$this->request->data['email'] = 'user@example.net'; -
这可能是我唯一没有尝试过的事情 :) 效果很好!。问题。同时我在尝试不同的选项我也改变了表单,因为 CakePHP-3 表单的创建与 Cake2 有点不同。
-
永远是你尝试的最后一件事:)
标签: forms cakephp-3.0