【发布时间】:2015-03-19 15:43:45
【问题描述】:
在我的控制器上,我在这条线上有一个错误'edit' => site_url('admin/users_group_controller_update') .'/'. $this->getId($controller)
当我刷新页面时,它会抛出错误数组到字符串转换
遇到 PHP 错误严重性:通知消息:数组到字符串 转换文件名:user/users_group_update.php 行号:47
不知道该怎么做,因为我需要将变量 $controller 添加到 $this->getId($controller);
哪些更改最适合完成这项工作。
<?php
class Users_group_update extends Admin_Controller {
public function __construct() {
parent::__construct();
$this->load->model('admin/user/model_user_group');
}
public function index() {
$data['title'] = "Users Group Update";
$controller_files = $this->getInstalled($this->uri->segment(3));
$data['controller_files'] = array();
$files = glob(FCPATH . 'application/modules/admin/controllers/*/*.php');
if ($files) {
foreach ($files as $file) {
$controller = basename(strtolower($file), '.php');
$do_not_list = array(
'customer_total',
'dashboard',
'footer',
'header',
'login',
'logout',
'menu',
'online',
'permission',
'register',
'user_total'
);
if (!in_array($controller, $do_not_list)) {
$data['controller_files'][] = array(
'name' => $controller,
'installed' => in_array($controller, $controller_files),
'edit' => site_url('admin/users_group_controller_update') .'/'. $this->getId($controller)
);
}
}
}
$this->load->view('template/user/users_group_form_update', $data);
}
public function getInstalled($name) {
$controller_data = array();
$this->db->select();
$this->db->from($this->db->dbprefix . 'user_group');
$this->db->where('name', $name);
$query = $this->db->get();
foreach ($query->result_array() as $result) {
$controller_data[] = $result['controller'];
}
return $controller_data;
}
public function getId($controller) {
$this->db->select();
$this->db->from($this->db->dbprefix . 'user_group');
$this->db->where('name', $this->uri->segment(3));
$this->db->where('controller', $controller);
$query = $this->db->get();
return $query->row('user_group_id');
}
}
查看
<?php echo Modules::run('admin/common/header/index');?>
<div id="wrapper">
<?php echo Modules::run('admin/common/menu/index');?>
<div id="page-wrapper" >
<div id="page-inner">
<?php
$data = array(
'class' =>
'form-horizontal',
'id' =>
'form-users-group'
);
echo form_open_multipart('admin/users_group_update' .'/'. $this->uri->segment(3), $data);?>
<div class="panel panel-default">
<div class="panel-heading clearfix">
<div class="pull-left" style="padding-top: 7.5px"><h1 class="panel-title"><?php echo $title;?></h1></div>
<div class="pull-right">
<a href="<?php echo base_url('admin/users_group');?>" class="btn btn-primary">Cancel</a>
<button type="submit" class="btn btn-primary">Save</button>
</div>
</div>
<div class="panel-body">
<?php echo validation_errors('<div class="alert alert-warning text-center">', '</div>'); ?>
<div class="form-group">
<?php
$data = array(
'class' => 'col-sm-2'
);
echo form_label('User Group Name', 'name', $data)
;?>
<div class="col-sm-10">
<?php
$data = array(
'id' => 'name',
'name' => 'name',
'class' => 'form-control',
'value' => set_value('name')
);
echo form_input($data)
;?>
</div>
</div>
<table class="table table-striped table-bordered">
<thead>
<tr>
<td>Controller Name</td>
<td>Access</td>
<td>Modify</td>
</tr>
</thead>
<tbody>
<?php if ($controller_files) { ?>
<?php foreach ($controller_files as $controllers) { ?>
<tr>
<td>
<div class="clearfix">
<div class="pull-left">
<?php echo $controllers['name']; ?>
</div>
<div class="pull-right">
<?php if ($controllers['installed']) { ?>
<span class="label label-success">Installed</span>
<span class="label label-danger"><a style="color: #FFF; text-decoration: none;" href="<?php echo $controllers['edit'];?>">Edit Individual Controller</a></span>
<?php } else { ?>
<span class="label label-primary">Not Installed</span>
<?php } ?>
</div>
</div>
</td>
</tr>
<?php } ?>
<?php } ?>
</tbody>
</table>
</div>
<div class="panel-footer">
</div>
</div><!-- Panel End -->
<?php echo form_close();?>
</div><!-- # Page Inner End -->
</div><!-- # Page End -->
</div><!-- # Wrapper End -->
<?php echo Modules::run('admin/common/footer/index');?>
【问题讨论】:
-
错误表明函数
getId()返回的是一个数组而不是字符串。但是您所做的应该返回列user_group_id的值。这很奇怪。您可以尝试像return $query->row();这样返回整行并改用$this->getId($controller)->user_group_id。 -
仍然显示相同的错误。当我点击按钮时,它会显示正确的 ID。
-
你能解释一下到底发生了什么吗?哪个按钮?
-
Users_group_update 显示安装到数据库或新的控制器列表,当我单击视图中的编辑按钮时,它会将我引导到该控制器,我可以对其进行编辑。示例链接
http://localhost/project/admin /users_group_controller_update/127在 $data['controller_files'][] 我使用 site_url 进行了编辑。我需要最后一段来获取 id,其中 $this->uri-segment(3) 是用户组的名称和 get where 控制器。有点奇怪为什么显示字符串错误。 -
我猜
id是第四个 URI 参数。试试这个$this->uri->segment(4)。
标签: php codeigniter