laravel关于产品分类的说说说

1、产品分类的数据表结构设计

不管有多少级分类,分类表中只要有以下几个字段即可,

id(分类的id号,不管几级分类都有自己一个唯一的id号),

name(分类的名称),

parentid(分类的上一级id名称,如果为一级分类,则此处值为0),

type(这个字段选填,代表当前分类名所属的等级,有这个字段可更快的判断分类名属于几级分类名称)

2、laravel中全部分类的展示:

1)、在前端页面最上面加上如下代码

<?php
use App\Http\Common\PHPTree;
?>

2)在App\Http\Common\文件夹下面建立PHPTree.php文件,文件内容如下:

<?php
/**
* @name PHPTree
* @author crazymus < QQ:291445576 >
* @des PHP生成树形结构,无限多级分类
* @version 1.2.0
* @Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
* @updated 2015-08-26
*/
namespace App\Http\Common;

class PHPTree{

protected static $config = array(
/* 主键 */
‘primary_key‘ => ‘id‘,
/* 父键 */
‘parent_key‘ => ‘parentid‘,
/* 展开属性 */
‘expanded_key‘ => ‘expanded‘,
/* 叶子节点属性 */
‘leaf_key‘ => ‘leaf‘,
/* 孩子节点属性 */
‘children_key‘ => ‘children‘,
/* 是否展开子节点 */
‘expanded‘ => false
);

/* 结果集 */
protected static $result = array();

/* 层次暂存 */
protected static $level = array();
/**
* @name 生成树形结构
* @param array 二维数组
* @return mixed 多维数组
*/
public static function makeTree($data,$options=array() ){
$dataset = self::buildData($data,$options);
$r = self::makeTreeCore(0,$dataset,‘normal‘);
return $r;
}

/* 生成线性结构, 便于HTML输出, 参数同上 */
public static function makeTreeForHtml($data,$options=array()){

$dataset = self::buildData($data,$options);
$r = self::makeTreeCore(0,$dataset,‘linear‘);
return $r;
}

/* 格式化数据, 私有方法 */
private static function buildData($data,$options){
$config = array_merge(self::$config,$options);
self::$config = $config;
extract($config);

$r = array();
foreach($data as $item){
$id = $item[$primary_key];
$parentid = $item[$parent_key];
$r[$parentid][$id] = $item;
}

return $r;
}

/* 生成树核心, 私有方法 */
private static function makeTreeCore($index,$data,$type=‘linear‘)
{
extract(self::$config);
foreach($data[$index] as $id=>$item)
{
if($type==‘normal‘){
if(isset($data[$id]))
{
$item[$expanded_key]= self::$config[‘expanded‘];
$item[$children_key]= self::makeTreeCore($id,$data,$type);
}
else
{
$item[$leaf_key]= true;
}
$r[] = $item;
}else if($type==‘linear‘){
$parentid = $item[$parent_key];
self::$level[$id] = $index==0?0:self::$level[$parentid]+1;
$item[‘level‘] = self::$level[$id];
self::$result[] = $item;
if(isset($data[$id])){
self::makeTreeCore($id,$data,$type);
}

$r = self::$result;
}
}
return $r;
}
}

?>

3)在后台php页面,获得分类表里的全部信息:

$category = Category::all()->toArray();

4)在模板.blade.php页面输出全部分类名称:

<?php
$r = PHPTree::makeTreeForHtml($category);
echo ‘<select name="articlecolumn" class="select">‘;
echo ‘<option value="0">全部分类</option>‘;
foreach($r as $item){
echo "<option value=".$item[‘id‘].">";
echo str_repeat(‘......‘,$item[‘level‘]);
echo $item[‘name‘];
echo ‘</option>‘;
}
echo ‘</select>‘;
?>

5)实现基本展现后,js获得选中select的选项值:

var articlecolumn=$(‘select[name=articlecolumn]‘).val();

就是这么简单,你学会了吗?

时间: 2024-11-05 16:03:45

laravel关于产品分类的说说说的相关文章

商城常用产品分类导航条

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

Mysql 产品分类和版本说明

MySQL Community Server是开源免费的,这也是我们通常用的MySQL的版本. 根据不同的操作系统平台细分为多个产品分类,具体分类如下: 1. MySQL Community Server 社区版本,免费,但是Mysql不提供官方技术支持. MySQLCommunity Server is a freely downloadable version of the world's most popularopen source database that is supported

商城产品分类设计思路

问题的提出:网上商城对产品进行了很多分类,不同的分类产品又有不同的属性,比如,电脑的属性有:CUP,内存,                   主板,硬盘等等,服装的属性有:布料,尺寸,颜色等等,那么产品表以及产品分类表应该如何设计才能满足                   不同类型产品的区别呢? 解决方案:      产品分类表的设计      第一种设计思路:使用树形结构,递归的形式,可以对产品进行N种     分类,只要你喜欢,树形结构在数据库的设计中                  

LigoWave品牌的产品分类及项目选型

一.产品介绍Ligowave拥有多条产品线,涵盖了不同垂直领域的各种应用.多年的研发和应用经验,独特的专有技术和专业的产品设计,为用户提供高质量高性能的无线产品.Ligowave独有的产品设计,可以应用于不同距离的点对点和点对多点场景,广泛的产品具有不同的容量设计和价格,允许每个客户对每个项目进行适当的投资,为不同的场景选择独特的设备,为用户提供最大的灵活性.Ligowave独具的专有协议W-jet和ipoll,将设备产品性能最大化,即使在射频密集.距离更远的环境,也能确保更高的带宽.更高的数据

Laravel编辑产品-CRUD之edit和update

上一篇讲了Laravel展示产品-CRUD之show,现在我们说一下Laravel编辑产品,涉及到编辑和更新, 1,定义controller,update和create有点相似,我们复制一份过来修改.new item改为item::find public function edit($id) { // $item = Item::find($id); return view('items.edit')->with('item', $item); } public function update(

产品分类

互联网基础产品归为以下几个个分类: 一.门户.如:AOL.新浪.搜狐.无疑,门户是最初的互联网产品,门户的内容本质上就是新闻资讯,门户其实是一种传统媒体的替代形式. 二.搜索引擎.如:谷歌.百度.naver(韩国的百度).雅虎.搜索引擎是虚拟世界的指南针.路标和地图. 三.社区.如:twitter.facebook.天涯.猫扑.MySpace.wikipedia.youtube.社区是内容和关系交织的产品,是虚拟世界的公共交流空间.必有人质疑youtube的划分,我的理由是youtube是人与内

magento related/upsell product 及产品/分类调用

catalog/product调用 $product_model = Mage::getModel('catalog/product'); $product = $product_model->load($product_id); //可通过product_id 获取 product_name$product->getName(); $product_url = $product->getUrlModel()->getUrl($product, array('_ignore_cat

ALGOLTEK安格产品分类与汇总---代理安格产品线

MHL/HDMI/DisplayPort? ? ? ? ? ? ??? AG6111 – MHL to HDMI Converter QQ1659747718? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? AG6200 – HDMI to VGA Converter? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? AG6310 – DP to HDMI Converter? ? ?

产品分类栏目调取一级地区下的二级地区

产品模块分类下的地区分类搜索,,这样全国区域就能调取出来,适合全国推广产品的seo步骤,调取一级地区下的二级地区方法及标签: {php $sqareas=get_mainarea(0);} {loop $sqareas $k $v} <li {if $k > 12} class="hide"{/if}><a href="{$MOD[linkurl]}search-htm-areaid-{$v[areaid]}-catid-{$catid}.html&q