2016-05-08 8 views
0

In einem beforeDelete() Callback, ich brauche Informationen in verbundenen, aber ich kann nicht finden, wie man es bekommt. Mein Rückruf ist unten in AgpoiaudiosTable.php:CakePHP3: Wie wird die Verbindung in beforeDelete() Callback hergestellt?

public function beforeDelete($event, $entity, $options) { 

    $agpoiaudio = $this->Agpoiaudios->get($entity->id, [ 
      'contain' => 'Agpois.AgThemes.Sites' 
    ]); 

    if ($agpoiaudio != null) { 
     ... 
     return true; 
    } 

    return false; 
} 

Aber $this->Agpoiaudios->get() verursacht Kuchen mir die folgende Fehlermeldung an:

Error: Table "App\Model\Table\AgpoiaudiosTable" is not associated with "Agpoiaudio"

Muss ich die Last, müssen im Zusammenhang wirklich vor $this->Agpoiaudios->delete() nannte es zu finden in $entity?

Antwort

0

Nein, Sie müssen keine zugeordneten Daten vor dem Aufruf Table::delete() laden, das ist nicht, was der Fehler angibt. Was es bedeutet anzuzeigen, ist, dass Agpoiaudio nicht mit Agpoiaudio verbunden ist, dh Sie können auf $this->Agpoiaudio in einer Instanz Agpoiaudio nicht zugreifen.

Also, da Sie bereits in einer Instanz von Agpoiaudio sind, dann rufen Sie einfach Table::get() direkt, dh

$agpoiaudio = $this->get($entity->id, [ 
    'contain' => 'Agpois.AgThemes.Sites' 
]); 
// ... 
+0

ah ok natürlich. Ich verstehe. Danke vielmals – 2ndGAB

Verwandte Themen