2012-12-13 49 views
0

我有一个链接http://mywebsite.com/referral/dafa60b2b96c366e165be58649755742Zend公司得到的数据库记录错误

随着参数dafa60b2b96c366e165be58649755742

当时试图获取参数连接到数据库来获取用户信息,但它最终得到没有对象:公告:试图让行非对象的属性.....

这里是我的代码:

的application.ini:

resources.router.routes.referralSelectProduct.route = “/转诊/:URL” resources.router.routes.referralSelectProduct.defaults.controller =索引 resources.router.routes.referralSelectProduct.defaults.action = referral-选择副产物 resources.router.routes.referralSelectProduct.reqs.url = “[0-9A-ZA-Z] +”

控制器:

public function referralSelectProductAction() 
{ 
    $referral_url = $this->getRequest()->getParam('url'); 
    $user = $this->_helper->model('Users')->fetchRowByFields(array('url' => $referral_url)); 

    setcookie('referral_url', $referral_url, time() + 3600*24*30, '/'); 
} 

模型:

class Application_Model_DbTable_Users extends Sayka_Db_Table_Abstract{ 
protected $_rowClass = 'Application_Model_DbTable_Row_User';protected $_name = 'users';} 

观点:

<div id="content_bottom" class="content"><br/> 
<h1>Select the product to refer your friend <span class="colorset_orange"><?php echo $this->user()->first_name; ?></span>.</h1> 
<div><a class="refer_submit" href="?email=<?php echo $this->user()->email ?>&first_name=<?php echo $this->user()->first_name; ?>&last_name=<?php echo $this->user()->last_name; ?>" id="btn_free_download">Free Download</a></div> 
<div><a class="refer_submit" href="#" id="btn_buy_now">Buy Now</a></div> 

我的观点最终得到没有在数据库中用户的对象。

+0

你能明确告诉我们,你是从哪里得到错误,并显示上下文代码到哪里你得到那个错误?这个错误非常明显,因为你正试图在一个对象上进行操作,但是你认为拥有一个对象的变量没有。 –

+0

它实际上在视图上时,我回声$ this-> user() - >所有这些回声给出一个错误。它没有得到该用户的数据库记录 – user1892860

+0

你甚至没有显示调用'$ this-> user()'的任何代码行。很显然'user'对象没有设置,你只需要通过你的代码进行调试来找出原因。 –

回答

0

如果我没有记错(用于Zend框架1. *):

// Controller 
... 
$this->view->user = $this->_helper->model('Users')->fetchRowByFields(array('url' => $referral_url)); 


// View 
echo $this->user->email; 

确保此$this->_helper->model('Users')->fetchRowByFields(array('url' => $referral_url))回报你,你期待什么。 var_dump它在控制器中

+0

是的,我检查,第一次获取用户信息,然后我尝试与另一个浏览器,然后我得到一个错误,可以是控制器中的setCookie吗? – user1892860

+0

如果错误取决于浏览器,则Cookie可能会成为问题。取决于你在js中使用它做什么。你能发布那个错误吗? –

+0

选择产品以引用您的朋友注意:尝试在第20行的/home/refer/application/views/scripts/index/referral-select-product.phtml中获取非对象的属性。 – user1892860