<ul>
<?php foreach ($users as $item): ?>
<li><a href=""><?php echo $item->name . " " . $item->surname; ?></a></li>
<?php endforeach; ?>
</ul>
当我点击姓名和姓氏的链接时,我必须转到包含该姓名和姓氏详情的页面。我该怎么做?我必须从视图中将名称和姓氏传递给控制器并进行查询吗?
答案 0 :(得分:2)
我不确定您是如何构建控制器和视图的,但是您可以为用户使用这样的结构,其中uid是唯一的用户ID:
href="users.php?uid=123"
然后 users.php
将使用GET变量uid
从模型中加载请求用户信息,然后将该信息传递给您的视图。读取GET变量就像这样:
if ( isset($_GET['uid']) ) {
$uid = $_GET['uid'];
// Load info from model and present in view
} else {
// Handle invalid or unspecified users, perhaps show all available users
}
一旦构建了基本功能,就可以使用Apache mod_rewrite规则,例如Sureround用来使网址漂亮。
答案 1 :(得分:2)
制作如下链接:
<li>
<a href="/user/get_user_details/<?php echo $item->name; ?>">
<?php echo $item->name . " " . $item->surname; ?>
</a>
</li>
这将转到控制器用户,方法get_user_details并将$ item-&gt;名称作为参数传递给方法。使用此(或您传递的项目的任何属性)来显示该项目的详细信息。
答案 2 :(得分:1)
您应该通过URL传递每个名称的唯一ID,例如“/ users / getuser / 1”。如果您的控制器被称为“用户”,那么您将创建名为getuser的函数并使用$ this-&gt; uri-&gt; segment(3)从URL中检索ID。然后,您可以将其存储到您传递给模型的变量中,以获取记录的详细信息,然后加载用户详细信息视图。
function getuser()
{
$userID = $this->uri->segment(3);
// Then just load your model pass your $userID and load your view
}
In your href you would just output <?= "/users/getuser/" . $item->id; ?>