У меня тут другой вопрос, меня за это гуглили, но не повезло. Теперь я надеюсь, что я получу решение здесь.
Моя проблема в том,
У меня есть две таблицы изображений и категорий. таблица изображений показана ниже. .
В этой таблице категория Image и Icon будут храниться только в столбце image_name, где id значка и изображения будут храниться в другой таблице в качестве внешнего ключа.
Таблица категорий показана ниже.
Поэтому моя проблема в том, что я хочу показать все названия категорий с изображением категории и значком категории.
но когда я пишу запрос модели, он выбирает только изображения, но не значки.
Моя модель запроса:
public function getAllCatsForAdminPanel(){
//extract($data);
$this->db->select('categories.id AS cat_id, categories.cat_name AS cat_name, categories.display_order AS cat_dis_order, images.image_name as imageName');
$this->db->from('categories');
$this->db->where('categories.status =', 'a');
$this->db->join('images', 'images.id = categories.cat_icon', 'left');
$this->db->join('images as im', 'im.id = categories.cat_image', 'left');
$query = $this->db->get();
//$query = $this->db->get('categories');
//print_r($query);
if($query->num_rows()>0){
return $query->result();
}else{
return false;
}
}
мой контроллер:
public function category(){
logActivity();
$cats_data['all_cats'] = $this->cat_model->getAllCatsForAdminPanel();
//print_r($cats_data);
$this->load->view('admin/category', $cats_data);
}//close category
код моего просмотра:
<?php
if(count($all_cats) > 0){
//print_r($all_cats);
foreach($all_cats as $all_cat){
?>
<tr>
<td><?php echo ++$counter; ?></td>
<td><?php echo $all_cat->cat_name; ?></td>
<td><?php echo $all_cat->cat_dis_order; ?></td>
<td><?php echo $all_cat->imageName; ?></td>
<td><?php echo $all_cat->imageName; ?></td>
<td>
<a href="<?php echo base_url('admin/admin/modifyCategory/'.$all_cat->cat_id); ?>"><i class="fa fa-pencil" aria-hidden="true"></i></a>
</td>
<td><button class = "btn btn-danger" onclick="deleteCategory(<?php echo $all_cat->cat_id; ?>);"><i class="fa fa-trash" aria-hidden="true"></i></button></td>
</tr>
<?php
}
}
else{
echo "no records found";
}
?>
скриншот моей таблицы просмотра:
Здесь, в этой таблице, названия красных пятен должны отличаться, но они одинаковы.
Пожалуйста, помогите мне!
Заранее спасибо…
Попробуйте это:
Модификации Модификации
$this->db->select('categories.id AS cat_id, categories.cat_name AS cat_name, categories.display_order AS cat_dis_order, images.image_name as iconName, im.image_name as imageName');
Посмотреть модификации
<td><?php echo ++$counter; ?></td>
<td><?php echo $all_cat->cat_name; ?></td>
<td><?php echo $all_cat->cat_dis_order; ?></td>
<td><?php echo $all_cat->imageName; ?></td>
<td><?php echo $all_cat->iconName; ?></td>
Если я не ошибаюсь, пожалуйста, обновите ниже строки,
В модели
$this->db->select('categories.id AS cat_id, categories.cat_name AS cat_name, categories.display_order AS cat_dis_order, images.image_name as imageName, images.image_label as imageLabel');
Ввиду,
<td><?php echo ++$counter; ?></td>
<td><?php echo $all_cat->cat_name; ?></td>
<td><?php echo $all_cat->cat_dis_order; ?></td>
<td><?php echo $all_cat->imageName; ?></td>
<td><?php echo $all_cat->imageLabel; ?></td>
Измените свой контроллер как (вам нужно выбрать значок из второго соединения из таблицы изображений как im, мы назвали его iconName) (Обратите внимание, я не проверял это):
public function getAllCatsForAdminPanel(){
//extract($data);
$this->db->select('categories.id AS cat_id, categories.cat_name AS cat_name, categories.display_order AS cat_dis_order, images.image_name as imageName,im.image_name as iconName');
$this->db->from('categories');
$this->db->where('categories.status =', 'a');
$this->db->join('images', 'images.id = categories.cat_icon', 'left');
$this->db->join('images as im', 'im.id = categories.cat_image', 'left');
$query = $this->db->get();
//$query = $this->db->get('categories');
//print_r($query);
if($query->num_rows()>0){
return $query->result();
}else{
return false;
}
}
Затем, на наш взгляд, нам нужно написать значок как iconName как:
<?php
if(count($all_cats) > 0){
//print_r($all_cats);
foreach($all_cats as $all_cat){
?>
<tr>
<td><?php echo ++$counter; ?></td>
<td><?php echo $all_cat->cat_name; ?></td>
<td><?php echo $all_cat->cat_dis_order; ?></td>
<td><?php echo $all_cat->imageName; ?></td>
<td><?php echo $all_cat->iconName; ?></td>
<td>
<a href="<?php echo base_url('admin/admin/modifyCategory/'.$all_cat->cat_id); ?>"><i class="fa fa-pencil" aria-hidden="true"></i></a>
</td>
<td><button class = "btn btn-danger" onclick="deleteCategory(<?php echo $all_cat->cat_id; ?>);"><i class="fa fa-trash" aria-hidden="true"></i></button></td>
</tr>
<?php
}
}
else{
echo "no records found";
}
?>
Замените свой контроллер Line:
$this->db->select('
categories.id AS cat_id,
categories.cat_name AS cat_name,
categories.display_order AS cat_dis_order,
images.image_name as imageName');
с
$this->db->select('
categories.id AS cat_id,
categories.cat_name AS cat_name,
categories.display_order AS cat_dis_order,
images.image_name AS cat_icon,
im.image_name AS cat_image');
В представлении используйте этот код:
<?php
if(count($all_cats) > 0){
//print_r($all_cats);
foreach($all_cats as $all_cat){
?>
<tr>
<td><?php echo ++$counter; ?></td>
<td><?php echo $all_cat->cat_name; ?></td>
<td><?php echo $all_cat->cat_dis_order; ?></td>
<td><?php echo $all_cat->cat_image; ?></td>
<td><?php echo $all_cat->cat_icon; ?></td>
<td>
<a href="<?php echo base_url('admin/admin/modifyCategory/'.$all_cat->cat_id); ?>"><i class="fa fa-pencil" aria-hidden="true"></i></a>
</td>
<td><button class = "btn btn-danger" onclick="deleteCategory(<?php echo $all_cat->cat_id; ?>);"><i class="fa fa-trash" aria-hidden="true"></i></button></td>
</tr>
<?php
}
}
else{
echo "no records found";
}
?>