$fields = isset($this->options['allow_field']) && $tableName == '' ?
730行 thinkphp\library\think\db\Query.php
影响:
不加这个表名的判断 会影响 多对多模型里面的代码
return $model::field($tableName . '.*')
->field(true, false, $table, 'pivot', 'pivot__')
534行 thinkphp\library\think\model\Relation.php
$tableName是模型表
$table是中间表
问题在第二个$field,这里的表名是中间表,但是字段读取却是$model模型表的字段,
所以改一下,传入表名参数时的field方法,优先输出该表字段而不是当前模型表的字段。
最佳答案
