Yii2: one-to-one data table Association; yii2: one-to-one Association
1. Create two tables publish: pub_id and images: pub_id and image_path;
2. Use crud of gii to generate code
3. Write the association function in Publish. php In models.
public function getImage() { return $this->hasOne(Images::className(),['pub_id'=>'pub_id']); }
4. Write the joinWith () function in publishSearch. php In models.
public function search($params) { $query = IhpTPublishInfo::find(); $query->joinWith(['image']); $dataProvider = new ActiveDataProvider([ 'query' => $query, ]); $this->load($params); if (!$this->validate()) { return $dataProvider; } $query->andFilterWhere([ 'pub_id' => $this->pub_id, ]); return $dataProvider; }}
5. Call $ model-> image-> img_path in the gradview of index. php In the view. The image corresponds to the getImage () function.
<? = GridView: widget (['dataprovider' => $ dataProvider, 'filtermodel' => $ searchModel, 'columns '=> [['class' => 'yii \ grid \ SerialColumn'], 'pub _ id', ['label' => 'thumbnails ', 'format' => 'Raw', 'value' => function ($ m) {// var_dump ($ m-> image ); if (is_object ($ m-> image) {return Html: img ($ m-> image-> img_path, ['alt' => 'thumbnails ', 'width' => 80]) ;}}], ['class' => 'II \ grid \ actioncolumn'], ['label' => 'add ', 'format' => 'Raw', 'val Ue '=> function ($ data) {$ url = "http: //"; return Html: a ('add recommending', $ url, ['class' => 'btn btn-success ']) ;}],],]);?>
Copyright Disclaimer: This article is an original article by the blogger and cannot be reproduced without the permission of the blogger.