TP5模型关联
模型关联是一个很强大的功能,在进行多表查询时可以简化相当多的代码,并且不需要写join操作。其实就是多表连接操作。
根据手册指导,我们进行以下简单实验:
首先我们有两张表
Message表
client表
因为这里是主从表的关系,即用户表是主表,所以使用hasone();函数
根据模型的命名规则,使用驼峰法命名建两个模型文件。并且新建Client控制器。
model/Client.php
<?php
espace app\index\model;
use think\Model;
class Client extends Model{
protected $table = 'think_client';
public function Message()
{
return $this->hasOne('Message','userid','userid');
}
}
model/Message.php
<?php
space app\index\model;
use think\Model;
class Message extends Model{
protected $table = 'think_message';
}
接着在模块下建立控制器Client.php就完事啦~
index/controller/Client.php
namespace app\index\controller;
use think\Controller;
use app\index\model\Client as ClientModel;
class Client extends Controller{
public function select()
{
$user = new ClientModel();
$res = $user::get(2);
$res = $res->Message()->find()->content;
dump($res);
}
}
访问
http://localhost/tp5/public/index/client/select
就可以发现通关Client表查询到了关联的Message表的留言内容了
·······················
手册上还有很多其他的连接方式,这里只介绍一种啦~毕竟手册一时半会也看不懂