Ich bin neu im Yii2-Framework und versuche jetzt, Daten in Listview unter Verwendung von Relationen aufzurufen. Kann jemand bitte erklären, warum mein Code nicht funktioniert? Ich möchte ein Tag finden, das zu einem Dokument gehört. HierZugriff auf Daten in Yii2
ist ein Screenshot von meiner Datenbank:
Hier meine Beziehung ist:
public function getTags() {
return $this->hasMany(Tag::className(), ['id' => 'tag_id'])
->viaTable('tbl_document_tag', ['document_id' => 'id']);
}
Hier ist mein Controller:
public function actionTag() {
$model = new Search();
$tag = Yii::$app->getRequest()->getQueryParam('tag');
//Documents
$documentModel = new Document;
$documentSearch = $model->searchDocumentsByTag($documentModel, $tag);
return $this->render('results', [
'model' => $model,
'documentSearch' => $documentSearch,
'documentModel' => $documentModel
]);
}
Hier ist meine Ansicht:
public function searchDocumentsByTag($documentsModel, $keyword) {
$query = Document::find()
->with('tags')
->andFilterWhere([
'or',
['like', 'tags.state', 1],
['like', 'tags.slug', $keyword],
]);
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
return $dataProvider;
bekomme ich folgende Fehlermeldung:
This method allows you to reuse existing relation definitions to perform JOIN queries. [...] Note that because a JOIN query will be performed, you are responsible to disambiguate column names.
zum Beispiel:
Database Exception – yii\db\Exception
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'tags.state' in 'where clause' The SQL being executed was: SELECT COUNT(*) FROM
tbl_document
WHERE (tags
.state
LIKE '%1%') OR (tags
.slug
LIKE '%steekwoord%') Error Info: Array ( [0] => 42S22 1 => 1054 [2] => Unknown column 'tags.state' in 'where clause' ) ↵ Caused by: PDOExceptionSQLSTATE[42S22]: Column not found: 1054 Unknown column 'tags.state' in 'where clause'
Wie funktioniert Ihr Code nicht? Welche Fehler erhalten Sie? Sie müssen beschreiben, welches Ergebnis Sie versuchen zu erreichen – mikeyq6
versuchen Sie es wie '['Like', 'tbl_tag.state', 1], ['Like', 'tbl_tag.slug', $ Schlüsselwort]' – vishuB