因此,我正在为我的Web应用程序创建carousel,我正在使用新的CodeIgniter 4。到目前为止,我已经成功地上传了图像,但我似乎无法获取图像以在前端显示它。它给我以下错误-尝试读取布尔值上的属性“bannerimg”。
编辑-我正在尝试从数据库中提取所有图像(当前存储了4个图像)
我的数据库表
Database table for carousel - Please check this image too!
下面是代码
在AdminModel中获取图像的函数
//This functions gets the images from db
public function getBanner() {
$builder = $this->db->table('tblbanner');
$result = $builder->get();
if(count($result->getResultArray()) == 1) {
return $result->getRow();
} else {
return false;
}
}
管理控制器
public function banners()
{
if(!session()->has('logged_staff')) {
return redirect()->to(base_url(). "/team");
}
$data = [];
$data['validation'] = null;
$suid = session()->get('logged_staff');
$data['getad'] = $this->adminModel->getBanner(); // This line of fetches the images from database.
$data['staffdata'] = $this->adminModel->getLoggedStaffData($suid);
echo view("team/Templates/header_panel");
echo view("team/navigation", $data);
echo view("team/sidebar", $data);
echo view("team/banners", $data);
echo view("team/Templates/footer_panel");
}
查看文件
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered table-striped" id="jsdata">
<thead>
<tr>
<th class="text-center">Edit Image</th>
<th class="text-center">Ad Image</th>
<th class="text-center">Upload Date</th>
<th class="text-center">Delete Image</th>
</tr>
</thead>
<tbody>
<tr>
<td class="text-center"><a class="btn bg-success"><i class="fas fa-edit"></i></a></td>
<td class="text-center">
**// The image fetched from database is displayed here //**
<?php if($getad->bannerimg != '') : ?>
<img class="profile-user-img img-fluid" src="<?= $getad->bannerimg; ?>" alt="Ad">
<?php else : ?>
<img class="profile-user-img img-fluid" src="<?= base_url(); ?>/public/assets/img/no-image.png" alt="Ad">
<?php endif; ?>
**// The image fetched from database is displayed here //**
</td>
<td class="text-center"><?= $getad->uploaded; ?></td>
<td class="text-center"><a class="btn bg-danger"><i class="fas fa-trash"></i></a></td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- /.card-body -->
</div>
1条答案
按热度按时间wtzytmuj1#
如果该表中有多个图像,则将返回
false
:所以
$data['getad']
和视图中的$getad
将是false
。另外,您获取了一个数组,但随后尝试将其作为对象$getad->bannerimg
访问。由于您只需要一行,请去掉
if
语句,只使用return
对象:然后在模板中,只需: