我为注册创建视图并将数据发送到控制器
//app::import('Model','Myprofile');
Class MembersController extends AppController {
var $name = 'Members';
var $helpers = array('Form', 'Session');
var $uses = array('Myprofile'); //
function register() {
//$myprofile = new Myprofile();
if (!empty($this - > data)) {
$this - > Member - > create();
if ($this - > Member - > save(($this - > data['Member']['username']), ($this - > data['Member']['password'])) && $this - > Myprofile - > save(($this - > data['Myprofile']['name']), ($this - > data['MyProfile']['address']), ($this - > data['Myprofile']['phonenumber']))) {
$this - > redirect('index');
}
} else {
$this - > Session - > setFlash('failed');
}
}
我想将成员控制器的数据发送到Myprofile Model 我尝试使用
$use = array('Myprofile');
我得到了
Undefined property: MembersController::$Member
当我使用
时//app::import('Model','Myprofile');
//$myprofile = new Myprofile()
我得到了
Undefined property: MembersController::$Myprofile
我不知道正确的方法 还有另一种方法可以解决我的问题 感谢任何建议
答案 0 :(得分:1)
$ uses数组只允许您访问您在其中指定的模型。
如果您已注释掉$ uses,默认情况下您仍然可以访问$ this->成员模型,因为您位于Members控制器中。
将另一个模型添加到$ uses数组后,您必须记住也包括初始模型。
我还发现,在某些情况下,确保当你做这样的事情时,你应该指定你的默认模型 FIRST
非常有用。var $uses = array( 'Member', 'Myprofile' );
否则,您可能会从$ this-> paginate()
等操作中获得意外结果答案 1 :(得分:0)
您必须将两个模型添加到$uses
数组:
var $uses = array('Myprofile', 'Member');
答案 2 :(得分:0)
尝试在您的操作中使用$this->loadModel('Myprofile');
。
您确定您的型号名称是“Myprofile”吗?
你甚至可以调试它以查看它是返回true还是false。这将有助于您找到模型是否已正确实例化。
答案 3 :(得分:0)
如果您使用$uses
数组,请确保您也拥有该数组中包含的当前模型。否则,如果您定义特定的$uses
数组,则默认情况下不会包含当前模型。
如果MyProfile
与Member
相关,您可以通过
$this->Member->MyProfile; //depends on associations
您也可以使用App:import
App:import('Model', array('Myprofile')); //loads the class
$myProfile = new MyProfile();
// OR
MyProfile::staticMethod();
答案 4 :(得分:0)
您可以正常方式调用相关模型的任何公共方法。例如
在Profile.php中
function someMethod( $param = null ) {
// some definition
}
来自MembersController.php
function register ( ) {
$this->Member->Profile->someMethod( $my_data_to_pass ); // if related
/* if not related
$this->loadModel('Profile');
$this->Profile->someMethod($my_data_to_pass);
*/
}
作为旁注,如果您遇到这种情况使网址更加明智,请查看路由器(http://book.cakephp.org/2.0/en/core-utility-libraries/router.html)< / p>