我在 Codeigniter 中创建了一个自定义 url 但 post 数据无法显示
i create a custom url in Codeigniter but post data can't show
我正在创建一个带有供应商系统的在线购物商店,我希望每个供应商的个人资料都显示在 url 中的用户名。
我当前的 url 显示 ID 号如
www.mydomain.com/home/profile/1
我希望我的 url 在 url 中显示用户名,例如:
www.mydomain.com/username
我的代码在这里:
型号
//get all vendors
public function vendor_profiles()
{
$where = array('ven_status' => 'Active');
$this->db->select()
->from('vendor_login')
->where($where,'DESC');
$data = $this->db->get();
return $data->result_array();
}
//get single vendor through id number
public function vendor_profile($id)
{
$where = array(
'vendor_id' => $id,
'ven_status' => 'Active',
);
$this->db->select()
->from('vendor_login')
->where($where,'DESC');
$data = $this->db->get();
return $data->first_row('array');
}
控制器
//show all vendors profile
public function vendor_profiles()
{
$data['profiles'] = $this->front->vendor_profiles();
$this->load->view('vendors',$data);
}
//show single vendor profile through id
public function profile($id)
{
$data['profile'] = $this->front->vendor_profile($id);
$this->load->view('profile',$data);
}
观看次数:
//here is show all vendor profiles (vendors.php)
<?php foreach($profiles as $vendor) : ?>
<a href="<?=base_url();?>home/profile/<?=$vendor['vendor_id'];?>"><img src="<?=base_url();?>uploads/<?=$vendor['ven_img'];?>"></a>
<a href="<?=base_url();?>home/profile/<?=$vendor['vendor_id'];?>"><?=$vendor['ven_firstname'];?></a>
<?php endforeach; ?>
//Here is single vendor profile show (profile.php)
<p><img src="<?=base_url();?>uploads/<?=$profile['ven_logo'];?>"></p>
<p><img src="<?=base_url();?>uploads/<?=$profile['ven_img'];?>"></p>
<p>First Name : <?=$profile['ven_firstname'];?></p>
<p>Last Name : <?=$profile['ven_lastname'];?></p>
<p>Username : <?=$profile['username'];?></p>
这是我的路线:
require_once( BASEPATH .'database/DB.php');
$db =& DB();
$query = $db->get('vendor_login');
$result = $query->result();
foreach ($result as $row) {
$rout["home/profile/" . $row->username] = "home/profile/" . $row->vendor_id;
}
一个建议:
尽量避免创建像
这样的配置文件 URL
www.mydomain.com/username
如果有人在您的应用程序中创建了与现有页面相同的用户名,则可能会导致问题。
例如假设您有一个 URL,例如 www.mydomain.com/shop
,其中显示了您的店铺首页。如果有人创建了用户名 shop,它将不起作用。
如果您的用户名字段是唯一的,则无需以这种方式创建路由。相反,您可以使用
$route['profile/(:any)']="home/profile/";
有了这个,您可以创建一个有意义的配置文件 URL 类似于
www.mydomain.com/profile/username
现在在你的控制器中Home.php改变profile
方法如下
public function profile($username)
{
// call your model function to retrieve userprofile with the unique username
// the username will be on $username variable
}
您的个人资料 URL 可以生成如下:
<a href='<?php echo base_url('profile/$username');?>'><?php echo $username;?></a>
我正在创建一个带有供应商系统的在线购物商店,我希望每个供应商的个人资料都显示在 url 中的用户名。 我当前的 url 显示 ID 号如
www.mydomain.com/home/profile/1
我希望我的 url 在 url 中显示用户名,例如:
www.mydomain.com/username
我的代码在这里:
型号
//get all vendors
public function vendor_profiles()
{
$where = array('ven_status' => 'Active');
$this->db->select()
->from('vendor_login')
->where($where,'DESC');
$data = $this->db->get();
return $data->result_array();
}
//get single vendor through id number
public function vendor_profile($id)
{
$where = array(
'vendor_id' => $id,
'ven_status' => 'Active',
);
$this->db->select()
->from('vendor_login')
->where($where,'DESC');
$data = $this->db->get();
return $data->first_row('array');
}
控制器
//show all vendors profile
public function vendor_profiles()
{
$data['profiles'] = $this->front->vendor_profiles();
$this->load->view('vendors',$data);
}
//show single vendor profile through id
public function profile($id)
{
$data['profile'] = $this->front->vendor_profile($id);
$this->load->view('profile',$data);
}
观看次数:
//here is show all vendor profiles (vendors.php)
<?php foreach($profiles as $vendor) : ?>
<a href="<?=base_url();?>home/profile/<?=$vendor['vendor_id'];?>"><img src="<?=base_url();?>uploads/<?=$vendor['ven_img'];?>"></a>
<a href="<?=base_url();?>home/profile/<?=$vendor['vendor_id'];?>"><?=$vendor['ven_firstname'];?></a>
<?php endforeach; ?>
//Here is single vendor profile show (profile.php)
<p><img src="<?=base_url();?>uploads/<?=$profile['ven_logo'];?>"></p>
<p><img src="<?=base_url();?>uploads/<?=$profile['ven_img'];?>"></p>
<p>First Name : <?=$profile['ven_firstname'];?></p>
<p>Last Name : <?=$profile['ven_lastname'];?></p>
<p>Username : <?=$profile['username'];?></p>
这是我的路线:
require_once( BASEPATH .'database/DB.php');
$db =& DB();
$query = $db->get('vendor_login');
$result = $query->result();
foreach ($result as $row) {
$rout["home/profile/" . $row->username] = "home/profile/" . $row->vendor_id;
}
一个建议: 尽量避免创建像
这样的配置文件 URLwww.mydomain.com/username
如果有人在您的应用程序中创建了与现有页面相同的用户名,则可能会导致问题。
例如假设您有一个 URL,例如 www.mydomain.com/shop
,其中显示了您的店铺首页。如果有人创建了用户名 shop,它将不起作用。
如果您的用户名字段是唯一的,则无需以这种方式创建路由。相反,您可以使用
$route['profile/(:any)']="home/profile/";
有了这个,您可以创建一个有意义的配置文件 URL 类似于
www.mydomain.com/profile/username
现在在你的控制器中Home.php改变profile
方法如下
public function profile($username)
{
// call your model function to retrieve userprofile with the unique username
// the username will be on $username variable
}
您的个人资料 URL 可以生成如下:
<a href='<?php echo base_url('profile/$username');?>'><?php echo $username;?></a>