修正关联定义的一些问题

This commit is contained in:
thinkphp
2017-04-24 13:58:59 +08:00
parent 77dbb1315b
commit aebbf980a5
4 changed files with 6 additions and 6 deletions

View File

@@ -121,7 +121,7 @@ class BelongsToMany extends Relation
public function getRelation($subRelation = '', $closure = null) public function getRelation($subRelation = '', $closure = null)
{ {
if ($closure) { if ($closure) {
call_user_func_array($closure, [& $this->query]); call_user_func_array($closure, [ & $this->query]);
} }
$result = $this->buildQuery()->relation($subRelation)->select(); $result = $this->buildQuery()->relation($subRelation)->select();
$this->hydratePivot($result); $this->hydratePivot($result);
@@ -514,7 +514,7 @@ class BelongsToMany extends Relation
$changes = [ $changes = [
'attached' => [], 'attached' => [],
'detached' => [], 'detached' => [],
'updated' => [] 'updated' => [],
]; ];
$pk = $this->parent->getPk(); $pk = $this->parent->getPk();
$current = $this->pivot->where($this->localKey, $this->parent->$pk) $current = $this->pivot->where($this->localKey, $this->parent->$pk)
@@ -559,7 +559,7 @@ class BelongsToMany extends Relation
*/ */
protected function baseQuery() protected function baseQuery()
{ {
if (empty($this->baseQuery)) { if (empty($this->baseQuery) && $this->parent->getData()) {
$pk = $this->parent->getPk(); $pk = $this->parent->getPk();
$table = $this->pivot->getTable(); $table = $this->pivot->getTable();
$this->query->join($table . ' pivot', 'pivot.' . $this->foreignKey . '=' . $this->query->getTable() . '.' . $this->query->getPk())->where('pivot.' . $this->localKey, $this->parent->$pk); $this->query->join($table . ' pivot', 'pivot.' . $this->foreignKey . '=' . $this->query->getTable() . '.' . $this->query->getPk())->where('pivot.' . $this->localKey, $this->parent->$pk);

View File

@@ -128,7 +128,7 @@ class HasManyThrough extends Relation
*/ */
protected function baseQuery() protected function baseQuery()
{ {
if (empty($this->baseQuery)) { if (empty($this->baseQuery) && $this->parent->getData()) {
$through = $this->through; $through = $this->through;
$model = $this->model; $model = $this->model;
$alias = Loader::parseName(basename(str_replace('\\', '/', $model))); $alias = Loader::parseName(basename(str_replace('\\', '/', $model)));

View File

@@ -273,7 +273,7 @@ class MorphMany extends Relation
*/ */
protected function baseQuery() protected function baseQuery()
{ {
if (empty($this->baseQuery)) { if (empty($this->baseQuery) && $this->parent->getData()) {
$pk = $this->parent->getPk(); $pk = $this->parent->getPk();
$map[$this->morphKey] = $this->parent->$pk; $map[$this->morphKey] = $this->parent->$pk;
$map[$this->morphType] = $this->type; $map[$this->morphType] = $this->type;

View File

@@ -217,7 +217,7 @@ class MorphOne extends Relation
*/ */
protected function baseQuery() protected function baseQuery()
{ {
if (empty($this->baseQuery)) { if (empty($this->baseQuery) && $this->parent->getData()) {
$pk = $this->parent->getPk(); $pk = $this->parent->getPk();
$map[$this->morphKey] = $this->parent->$pk; $map[$this->morphKey] = $this->parent->$pk;
$map[$this->morphType] = $this->type; $map[$this->morphType] = $this->type;