表1:推荐表,有id,ti
表2:新闻表,新闻表有id,栏目catid及其它字段
表3:栏目表,有栏目id对应表2的catid
表4:是推荐表只有俩个字段,一个是对应的新闻表id 叫article_id 另一个字段是推荐表id名字叫nature_id
表5:新闻副表,只有一个id,新闻内容,和关联的新闻id三个字段,专门用来放新闻内容的表,
由于要做一个文章可以有多个推荐位现在做关联查询,不弄弄了,我把关联的代码发上来,请帮我更正下,谢谢了
<?php
/**
* Created by PhpStorm.
* User: zhibo
* 14-7-9 下午4:15
* Mail:ni5400@163.com
* Web:http://www.ki35.com
*/
namespace Admin\Model;
use Think\Model\RelationModel;
class ArticleRelationModel extends RelationModel{
//定义主表
protected $tableName ='Article';
//定义副表
protected $_link=array(
'Data'=>array(
'mapping_type'=>self::HAS_ONE,
'foreign_key'=>'aid',
'class_name'=>'ArticleData',
'mapping_fields'=>'content', //读取副表的字段
'as_fields'=>'contents' //默认查询副表返回的结果是多维数组,若此询副表的一个字段,用此表,可取消多维数组,直接以只元素返回
//[name]=>结果 若更改键名name 'as_fields'=>'name:cate'
),
'category'=>array(
'mapping_type'=>self::HAS_ONE,
'class_name'=>'Category',
'foreign_key'=>'catid',
'mapping_fields'=>'ctitle',
),
'nature'=>array(
'mapping_type'=>self::ONE_TO_MANY,
'class_name'=>'ArticleNature',
'foreign_key'=>'id',
'mapping_fields'=>'title',
),
'nature_data'=>array(
'mapping_type'=>self::ONE_TO_MANY,
'class_name'=>'ArticleNatureData',
'foreign_key'=>'article_id',
'mapping_fields'=>'nature_id',
),
);
} 最佳答案