• 「七天自制PHP框架」应用:Model外键链接


    这里以行政区数据为例:

    一级行政区数据范例:

    二级行政区范例:

    三级行政区范例:

    在Model层建立三个Model

    class ProvinceModel extends Model{
    	public static $data;
    	public static $name;
    	public function __construct(){
    		parent::__construct();
    		$this::$name='province_list';//name of obj
    		$this::$table='china_province';
    		$this::$primary_key='provinceid';
    	}
    }
    
    class CityModel extends Model{
    	public static $data;
    	public static $name;
    	public function __construct(){
    		parent::__construct();
    		$this::$name='city_list';//name of obj
    		$this::$table='china_city';
    		$this::$primary_key='cityid';
    	}
    }
    
    class AreaModel extends Model{
    	public static $data;
    	public static $name;
    	public function __construct(){
    		parent::__construct();
    		$this::$name='area_list';//name of obj
    		$this::$table='china_area';
    		$this::$primary_key='areaid';
    	}
    }
    

    因为非常反感每次做外键链接时写不完的FOR循环和IF判断,所以做了个HasMany的一对多关系,增强代码复用性

    在Controller层绑定关系

    $province_model=new ProvinceModel();
    $province_model::$data=$province_model::all();
    		
    $city_model=new CityModel();
    $city_model::$data=$city_model::all();
    		
    $area_model=new AreaModel();
    $area_model::$data=$area_model::all();
    		
    $city_model->HasMany($area_model,'cityid');
    $province_model->HasMany($city_model,'provinceid');
    

    最后把数据导出为JSON格式

    本文为博主原创文章,转载请在明显位置注明出处: http://www.cnblogs.com/sweng

    本作品采用知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本许可协议进行许可。

  • 相关阅读:
    一些常用的Ant标签
    c++ 精简版 scope_guard
    c++ 精简版 fps限制
    用c++11封装win32界面库
    c++ 精简版 signal
    SQL Server 数据库中的 MD5 和 SHA1加密算法
    不同服务器数据库之间的数据操作
    MSSQL行专列
    JS倒计时代码
    破解网页中限制的《七种武器》
  • 原文地址:https://www.cnblogs.com/sweng/p/9410357.html
Copyright © 2020-2023  润新知