我正在尝试使用Cakephp插入记录。我的模型名称类似于User.php。 我的工作控制器名称是SignupsController。我想使用这两个插入记录,但我不能。我在下面给出了一些代码:
查看:
<?php echo $this->Form->create('Signups',array('action' => 'registration'));?>
<div class="row-fluid">
<div class="span5">
<label class="">*First Name</label>
<?php echo $this->Form->input('first_name', array('type' => 'text','label' => false, 'class' => 'input-xlarge validate[required]', 'div' => false)); ?>
</div>
<div class="span5">
<label class="">*Last Name</label>
<?php echo $this->Form->input('last_name', array('type' => 'text', 'label' => false, 'class' => 'input-xlarge validate[required]', 'div' => false)); ?>
</div>
</div>
<?php echo $this->Form->end(); ?>
我的控制器代码如下:
class SignupsController extends AppController {
var $name = 'Signups';
var $uses=array("User");
public function registration()
{
$this->layout="reserved";
$this->Club->create();
if (isset($_POST['registration'])) {
echo "This is";
echo "<pre>";print_r($this->request->data);echo"</pre>";
$this->User->save($this->request->data);
//$this->Session->setFlash(__('Promoter registration has been done successfully'));
//$this->redirect('registration');
//$this->redirect(array('action' => 'registration'));
}
}
}
我的型号名称不同,其名称为User.php 我想使用上面的代码插入记录。任何想法如何插入?
答案 0 :(得分:1)
您可以通过在当前控制器中加载用户模型来执行此操作,只需编写以下行
即可 $this->loadModel('Name of the Model')
。
然后
$this->nameofmodel->save()
你无法理解,请看这个
Controller::loadModel(string $modelClass, mixed $id)¶
The loadModel() function comes handy when you need to use a model which is not the controller’s default model or its associated model:
$this->loadModel('Article');
$recentArticles = $this->Article->find(
'all',
array('limit' => 5, 'order' => 'Article.created DESC')
);
$this->loadModel('User', 2);
$user = $this->User->read();
以上粘贴的代码来自CakeBook的CookBook,如果您仍然不理解read it它有完整的详细解释,您也可以看到to understand
答案 1 :(得分:1)
您可以将其与$uses
SignupController
变量一起使用
class SingupController extends AppController
{
public $uses = array('User');
//rest of stuff
}
或者,如果您愿意,可以在方法内按需加载:
$this->loadModel('User'); //now model is loaded inside controller and used via $this->User
编辑:您的数据阵列必须包含您要保存的模型的名称。所以,替换:
$this->Form->create('Signups',array('action' => 'registration')
使用:
$this->Form->create('User',array('url' => array('controller' => 'signups', 'action' => 'registration'));