- Chúng ta mở file CatController lấy tất cả dữ liệu
- Chúng ta ở dưới cùng của file chúng ta thêm 1 function như sau
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?php
function menuParent($data,$parent,$str=''){
foreach($data as $item){
if($item->cat_parent==$parent){
echo '<option value="'.$item->cat_id.'">'.$str.$item->cat_name.'</option>';
menuParent($data,$item->cat_id,$str.'--');
}
}
}
?>
|
- Chúng ta thêm <?php menuParent($listCat,0,”) ?> dưới <option>lựa chọn danh mục cha</option>
Giải thích: đâu tiên ta viết 1 function
|
|
function menuParent($data,$parent,$str=''){
foreach($data as $item){
if($item->cat_parent==$parent){
echo '<option value="'.$item->cat_id.'">'.$str.$item->cat_name.'</option>';
}
}
}
|
Và ta truyền vào thêm <?php menuParent($listCat,0,”) ?> vậy là chúng ta đã lấy được tất cả các danh mục cha
Tiếp theo ta thêm menuParent($data,$item->cat_id,$str.’–‘); vào vậy là vòng lặp sau sẽ lấy ra thì nó sẽ so sánh $item->cat_id = $parent thì $item->cat_id giờ là id của danh mục cha mà chúng ta vừa có dc. Vậy là chúng ta sẽ lấy dc ra danh mục con
- ở view chúng ta cũng làm tương tự như file chúng ta sẽ được
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
<?php
function menuParent($data,$parent,$str){
$str = $str.'';
foreach($data as $val){
if($val->cat_parent==$parent){
$urlEdit = asset('admin/cat/edit/'.$val->cat_id);
$urlDel = asset('admin/cat/del/'.$val->cat_id);
echo "<tr>";
echo "<td>".$val->cat_id."</td>";
echo "<td>".$str.$val->cat_name."</td>";
echo "<td><a class='btn btn-warning' href='".$urlEdit."'>Edit</a></td>";
echo "<td><a class='btn btn-danger' href='".$urlDel."'>Delete</a></td>";
echo "</tr>";
menuParent($data,$val->cat_id,$str.'--');
}
}
}
?>
|
- ở file CatController -> function getEdit chúng ta cần thêm
|
|
$data['listCat'] = DB::table('vietpro_category')->where('cat_id','<>',$id)->get();
|
để lấy ra tất cả danh mục còn lại
- ở edit.blade.php chúng ta cũng thêm 1 function
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?php
function menuParent($data,$itemCat,$parent=0,$str=''){
foreach($data as $val){
if($val->cat_parent==$parent){
$select = ($itemCat==$val->cat_id)?'selected':'';
echo "<option $select value='".$val->cat_id."'>".$str.$val->cat_name."</option>";
menuParent($data,$itemCat,$val->cat_id,$str.'--');
}
}
}
?>
|
- dưới <option>lựa chọn danh mục cha</option> chúng ta cũng thêm <?php menuParent($listCat,$itemCat->cat_parent); ?>
Vậy là chúng ta đã xây dựng xong menu đa cấp, Cám ơn các bạn đã theo dõi, ở bài sau mình sẽ hướng dẫn các bạn Quản lý bài viết. Hẹn gặp lại các bạn ở bài kế tiếp.
Nhận xét
Đăng nhận xét