laravel 使用递归实现无限分类(转自oschina姚棉伟原创)
来源:互联网 发布:红蜘蛛电脑调色软件 编辑:程序博客网 时间:2024/05/21 18:37
实现规格:一个新闻无线分类系统最终实现的效果如下
ㅣㅡㅡ体育新闻
ㅣㅡㅡㅡㅡ足球新闻
ㅣㅡㅡㅡㅡ篮球新闻
ㅣㅡㅡㅡㅡ其他体育
ㅣㅡㅡ娱乐新闻
ㅣㅡㅡㅡㅡ电影
ㅣㅡㅡㅡㅡ音乐
ㅣㅡㅡ科技新闻
ㅣㅡㅡㅡㅡ智能手机
ㅣㅡㅡㅡㅡㅡㅡ小米手机
ㅣㅡㅡㅡㅡㅡㅡ华为手机
laravel Model层实现获取分类信息(使用递归)
<?phpnamespace App\Model;use Illuminate\Database\Eloquent\Model;use Illuminate\Database\Eloquent\Collection;class Category extends Model{ protected $table = 'category'; protected $primaryKey='CategoryID'; public $timestamps=false; //使用递归获取分类 (正式函数) public function getCategory($sourceItems, $targetItems, $pid=0){ foreach ($sourceItems as $k => $v) { if($v->pid == $pid){ $targetItems[] = $v; $this->getCategory($sourceItems, $targetItems, $v->CateID); } } } //使用递归获取分类信息测试函数 (测试正式函数) public function getCategoryTest($sourceItems, $targetItems, $pid=0, $str='ㅣ'){ $str .= 'ㅡㅡ'; foreach ($sourceItems as $k => $v) { if($v->pid == $pid){ $v->CateName = $str.$v->CateName; $targetItems[] = $v; $this->getCategoryTest($sourceItems, $targetItems, $v->CateID, $str); } } } //使用递归获取分类信息 (正式函数) public function getCategoryInfo(){ $sourceItems = $this->get(); $targetItems = new Collection; $this->getCategory($sourceItems, $targetItems, 0); return $targetItems; } //测试函数 (测试正式函数) public function getCategoryInfoTest(){ $sourceItems = $this->get(); $targetItems = new Collection; $this->getCategoryTest($sourceItems, $targetItems); return $targetItems; }}
laravel ctroller层实现测试效果
<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use App\Http\Requests;use Illuminate\Support\Facades\Input;use Illuminate\Support\Facades\Validator;use App\Model\Category;use Illuminate\Database\Eloquent\Collection;use DB;class CategoryCtroller extends Controller{ public function index(){ $category = new Category; $items = $category->getCategoryInfoTest(); foreach ($items as $key => $item) { dump($item->CateName); } }}
访问相关的控制器就可看见要实现的无限分类的效果
阅读全文
0 0
- laravel 使用递归实现无限分类(转自oschina姚棉伟原创)
- PHP无限级分类的实现(不使用递归)
- (原创)用重载实现 treeview 的无限分类递归调用(图)
- 递归实现无限级别分类
- 递归实现之无限分类
- 递归实现无限极分类
- 递归实现无限极分类
- 无限分类递归的实现
- PHP无限级分类实现(递归+非递归)
- PHP无限级分类实现(递归+非递归)
- PHP无限级分类实现(递归+非递归)
- PHP无限级分类实现(递归+非递归)
- PHP无限级分类实现(递归+非递归)
- php实现无限级分类查询(递归、非递归)
- PHP无限级分类实现(递归+非递归)
- Laravel ClosureTable 数据库无限分类插件使用
- 使用PHP引用实现无限分类思路(非递归迭代)
- laravel无限级分类
- 做人、做事,做架构师——架构师能力模型解析
- JavaScript获取时间的方法
- android SOCKET编程中出现connection reset
- 前端
- 二分查找模板
- laravel 使用递归实现无限分类(转自oschina姚棉伟原创)
- iOS第三方库汇总
- Android GreenDao3.2.2版本初试
- Mysql数据库的优化(主Sql优化)
- 常用的推荐算法解析
- java 消息机制 ActiveMQ入门实例
- react-native 布局
- 数组操作系列之循环去重
- webapp mui & HTML5+ (二) 之 mui