建立模型Users
namespace app\admin\model;
use \think\Model;
class Users extends Model
{
// 建立关联属性
public function comments()
{
return $this->hasOne("comments","uid");
}
}
建立模型Comments
namespace app\admin\model;
use \think\Model;
class Comments extends Model
{
}
控制器代码
单个数据获取
$users = new Users();
$data = $users->where("mobilenum",'1875251xxxx')->find();
$comments = $user->comments()->where("isshow",1)->select();//获取该用户所有通过审核的评论
print_r($comments);
多个数据
$users = new Users();
$users = Users::all(function($query){
$query->where("ischeack='0'");
});// 闭包查询 未通过审核的所有用户
foreach ($users as $key=>$user)
{
$user->comments;
print_r($user->toArray());
}
关联操作也可以用“getBy字段名”的方法
$comments = $user->comments()->getByContents("这个文章不错");
//所生成的sql语句为
select * from hc_comments where uid=2 and contents='这个文章不错';
// 查询所有评论过的用户
$user = Users::has("comments")->select();
// 查询评论过两次以上的用户信息
$user = Users::has("comments",">=",2)->select();
// 评论内容是”这个文章不错“的所有用户信息
$user = Users::hasWhere("comments",["contents"=>"这个文章不错"])->select();
关联更新
$user = Users::get(1);
$comments = $user->comments()->getByCotents("这个文章不错");
$comments->contents = '这里是更新过的内容';
$comments->save();
也可以使用构造器更新
$user =Users::get(1);
$user->comments()->where("id",1)->update(["contents"=>"这里是更新过的内容"]);
网友评论