ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
>[danger] hasWhere() 根据关联数据查询 + 根据关联条件来查询当前模型对象数据 + 根据用户资料表的字段的限定条件查询用户表数据 ``` /** * 模型关联测试 */ public function test() { // $data 用户表数据集模型对象 // hasWhere('关联方法名', ['用户资料表的字段' => '值']) // 相当于在关联方法的基础上新增一个关联条件: 用户资料表mobile字段值为10086 $data = self::hasWhere('profile', ['mobile' => '10086'])->select(); foreach ($data as $value) { // 用户资料表模型 dump($value->profile); } } /** * 关联用户资料表模型 */ public function profile() { // 用户资料表的uid 对应用户表的主键id return $this->hasOne(Profile::class, 'uid'); } ``` >[danger] 如果关联条件比较复杂,可以使用闭包查询 ``` $name = 'PHP'; // 可以使用闭包查询 self::hasWhere('profile', function($query){ global $name; $query->where('nickname', 'like', '%' . $name . '%'); })->select(); ``` >[danger] 可以通过 `fetchSql(true)` 查看执行的SQL语句 ``` $sql = self::hasWhere('profile', function($query){ $query->where('mobile', 10086); })->fetchSql(true)->select(); halt($sql); ```