从数据库 CodeIgniter 加载图像
Posted
技术标签:
【中文标题】从数据库 CodeIgniter 加载图像【英文标题】:Load images from database CodeIgniter 【发布时间】:2018-09-01 11:16:45 【问题描述】:我想创建一个照片库,从数据库中获取图像。 我正在使用代码点火器。 Database
this is a static page located in views/pages/gallery.php
有人有什么想法吗?
【问题讨论】:
【参考方案1】:您想要的是查询数据库表,获取相关字段,并将其返回到视图。在 MVC 中,它看起来像这样:
型号:
class Portfolio_model extends CI_Model
public function get_items()
$this->db->select('name, description, image');
$this->db->order_by('date', 'DESC');
$q = $this->db->get('tablename'); // your tablename here
if ($q->num_rows() > 0)
return $q->result();
else
return null;
控制器:
class Portfolio extends CI_Controller
public function index()
$this->load->helper('html');
$this->load->model('portfolio_model');
$data['items'] = $this->portfolio_model->get_items();
$this->load->view('portfolio', $data);
查看:
if (!is_null($items))
foreach ($items as $item)
echo $item->name . '<br>';
echo $item->description . '<br>';
echo 'Image src: ' . base_url() . $item->image . '<br>'; // might need slash after base_url, don't remember
echo img($item->image);
else
echo 'No items found!';
【讨论】:
我粘贴了所有代码并编辑了表名,但在视图文件夹的第二行出现错误。消息:未定义的变量:项目 此处定义了不可能的项目:$data['items']
。再检查一遍。必须在此代码范围之外发生其他一些错误。
添加 print_r($data['items'));在控制器中的 $data['items'] 和视图中的所有内容之前的 print_r($items) 之后。看看这两种情况下数组是否都存在。
消息:未定义变量:项目文件名:pages/portfolio.php 行号:2 回溯:文件:C:\xampp\htdocs\canoa\application\views\pages\portfolio.php 行:2函数:_error_handler 文件:C:\xampp\htdocs\canoa\application\controllers\Pages.php 行:16 函数:查看 文件:C:\xampp\htdocs\canoa\index.php 行:315 函数:require_once
再次参考我之前的cmets。上面的代码是可靠的。你一定在某个地方犯了错误。将您的代码发布在 pastebin 或其他东西上 - 我猜您没有逐字使用我的代码。【参考方案2】:
这对我有用:
控制器 -
public function index()
$this->load->model('galleryModel');
$data1['items'] = $this->galleryModel->get_items();
$this->load->view('gallery', $data1);
型号 -
public function get_items()
$this->db->select('*');
$this->db->from('gallery');
$query = $this->db->get();
if($query->num_rows() != 0)
return $query->result_array();
else
return false;
查看 -
<?php
foreach ($items as $item)
$image_id = $item['image_id'];
$name = $item['name'];
$category = $item['category'];
$image = $item['image'];
?>
<div class="tile scale-anm <?php echo $category; ?>">
<a href="#"><img src="<?php echo $image; ?>" class="film-img-gallery" /></a>
</div>
<?php ?>
【讨论】:
以上是关于从数据库 CodeIgniter 加载图像的主要内容,如果未能解决你的问题,请参考以下文章
Jquery easyui datagrid从codeigniter控制器加载数据