如何在 Zend Framework 中将变量从视图传递到控制器操作

发布于 2025-01-01 12:32:31 字数 742 浏览 0 评论 0原文

有这行代码

<a href="<?php echo $this->url.'/login/calllogs/id/'.$record->phone_service_id;?>">Control Panel</a>

在我看来,我的登录控制器中

public function calllogsAction(){
    if(!Zend_Auth::getInstance()->hasIdentity()){
        $this->_redirect('login/login');
    } else{
        $request = $this->getRequest();
        $this->view->assign('url', $request->getBaseURL());
    }
}

我有这个操作如何在我的操作(calllogsAction)中获取我的视图变量($record->phone_service_id;)代码>)? 我没有提交,这只是一个链接。我想我不能在我的行动 calllogsAction 中这样做

$request = $this->getRequest();
$phone_service_id =  $request->getParam("id");

In my view i have this line of code

<a href="<?php echo $this->url.'/login/calllogs/id/'.$record->phone_service_id;?>">Control Panel</a>

in my Login Controller I have this action

public function calllogsAction(){
    if(!Zend_Auth::getInstance()->hasIdentity()){
        $this->_redirect('login/login');
    } else{
        $request = $this->getRequest();
        $this->view->assign('url', $request->getBaseURL());
    }
}

How can i get my view variable ($record->phone_service_id;) in my action (calllogsAction)?
I am not submitting , this is just a link. I think i cant do it it like this in my action calllogsAction

$request = $this->getRequest();
$phone_service_id =  $request->getParam("id");

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

携余温的黄昏 2025-01-08 12:32:31

如果您不希望 id 显示在地址栏中,则必须使用 POST。 使用

<form method="post" action="<?php /*your URL here*/ ?>">

在表单内

<input type="hidden" name="id" value="<?php /*your id here*/ ?>"/>

而不是普通链接:并在控制器中使用

$id = $this->getRequest()->getPost("id");

If you don't want the id to show in the address bar, then you will have to use POST. Use

<form method="post" action="<?php /*your URL here*/ ?>">

instead of a plain link, inside the form:

<input type="hidden" name="id" value="<?php /*your id here*/ ?>"/>

and in the controller use

$id = $this->getRequest()->getPost("id");
浪漫人生路 2025-01-08 12:32:31

事实证明,最初的答案与您的尝试相同。

如果您不想在地址栏中显示 id(请记住,如果有合适的工具,任何人都可以看到发布数据),那么您的另一个选择是使用带有表单的 POST -

<form action="<?php echo $this->url.'/login/calllogs/id';?>" method="post">
<input type="hidden" name="id" value="<?php echo $record->phone_service_id; ?>" />
<input type="submit" name="submit" value="Control Panel" />
</form>

然后您需要使用 getPost 而不是控制器中的 getParam 来获取变量。

Initial answer was the same as your attempt, as it turns out.

If you don't want the id in the address bar (bear in mind anyone can see post data if they have the right tools anyway) then your other option is using POST with a form -

<form action="<?php echo $this->url.'/login/calllogs/id';?>" method="post">
<input type="hidden" name="id" value="<?php echo $record->phone_service_id; ?>" />
<input type="submit" name="submit" value="Control Panel" />
</form>

You'd then need to use getPost rather than getParam in the controller to get the variable.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文