目錄
1、簡介
2、操作步驟
  2.1、step1在A model中新增一個方法
   2.2、step2在A search 中新增需要關聯的欄位變數
   2.3、修改A search中的search函數
   2.4、在A search中設定排序配置
   2.5、在A search中新增過濾設定
首頁 後端開發 php教程 Yii框架中關聯欄位並帶搜尋排序功能的實作案例

Yii框架中關聯欄位並帶搜尋排序功能的實作案例

Oct 23, 2017 am 09:06 AM
欄位 排序 搜尋

1、簡介

  從接觸yii框架到現在已經快有兩個月了,但是自己對yii框架的了解程度並不是很深,並沒有系統地去學習,僅僅只是在做專案的時候遇到不懂知識才去翻手冊。

  在上一個項目中因為需要將關聯的表的字段顯示出來並且帶搜索排序功能,這個在之前並沒有接觸過,因此在手冊中查找了相關的資料把這個需求寫出來了,並在有道雲做了一些筆記,今天剛好是周末有時間就將它整理成一篇博客吧。

  廢話不多說,直接上步驟吧。

2、操作步驟

  背景:這裡針對GII自動產生的CURL中,增加關聯表格欄位。

  需求:A表中有一個字段pt_id關聯B表;現在需要在基於A表GII生成的CURL的基礎上,增加A表關聯B表字段的name值,並且帶有搜尋排序功能。

  2.1、step1在A model中新增一個方法


1 //意思即获取Pt的数据
2 public function getPt()    //get**  get后面任意
3 {
4     //模型名:className(),B表字段=>A表对应字段 
5     return $this->hasOne(Pt::className(), ['id' => 'ptid']); 
6 }
登入後複製

 

   2.2、step2在A search 中新增需要關聯的欄位變數


1 public $name;   //可以关联显示多个字段
2 public $*****;  //例子
登入後複製

 

   2.3、修改A search中的search函數


1 //search函数中添加 表示在SQL语句中增加关联查询
2 //看起来是那么的熟悉,哈哈
3 $query->joinWith(['pt']);   //这里等待pt中的值就是step1中get后面的命名
登入後複製

 

   2.4、在A search中設定排序配置


 1 //这里存放的是可以排序的字段 
 2 //如果A Search已经存在setSort,则其他动,只需要添加新的字段就可以了 
 3 //但是,我的yii 2生成的Search不存在这个排序,因此就需要额外添加了 
 4 //注意:当你的search中不存在这个配置时,即表明默认配置里面有设置过,当你在这里添加一个setSort则将会覆盖默认配置,之前默认有排序功能的字段将会失效 
 5 $dataProvider->setSort( 
 6 'attributes'=>[ 
 7 //====添加新字段排序配置= 
 8 'name'=>[ 
 9 'asc'=>['name' => SORT_ASC],
 10 'desc'=>['name' => SORT_DESC],
 11 'lable'=>'name',
 12 ],
 13 //==================
 14 ]
 15 );
登入後複製

 

   2.5、在A search中新增過濾設定



1 //在代码里面照着队形添加这一句即可
2 //like,关联表全名,this->name
3 $query->andFilterWhere(['like', '**_pt.name', $this->name]) ;
登入後複製

  2.6、修改index視圖中的gridview

 1 'columns' => [ 
 2 //=========== 
 3 //添加 
 4 [ 
 5           'attribute' => 'name', 
 6           'label' => '平台', 
 7           'value' => 'pt.name', 
 8           'filter' => Html::activeTextInput($searchModel, 'name', [ 
 9               'class' => 'form-control'
 10           ]),
 11 ],
 12 //=============
 13 ]
登入後複製

 

  此時已經完成一大半了,你訪問這個控制器,已經可以看到頁面效果了,但是搜尋的時候確實失效的,為什麼呢?

  因為此時你提交的這個欄位資訊是屬於不安全的,程式中沒有記錄。

 

  2.7、設定此欄位為安全等級

1 //在A Search中的设置规则方法中添加
2 //name字段为safe3 [['name'], safe]
登入後複製

 

####大工告成! ! ###### ######3、小結######  這裡僅僅只是一個小小的例子,透過這個例子可以知道yii添加關聯字段的方法,那麼你就可以根據現有的知識更改出更多的花樣出來。 。 。 。 ###### ###

以上是Yii框架中關聯欄位並帶搜尋排序功能的實作案例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1272
29
C# 教程
1252
24
如何在Windows 11/10中按拍攝日期對照片進行排序 如何在Windows 11/10中按拍攝日期對照片進行排序 Feb 19, 2024 pm 08:45 PM

本文將介紹如何在Windows11/10中根據拍攝日期對圖片進行排序,同時探討如果Windows未按日期排序圖片應該如何處理。在Windows系統中,合理整理照片對於方便尋找影像檔案至關重要。使用者可以根據不同的排序方式(如日期、大小和名稱)來管理包含照片的資料夾。此外,還可以根據需要設定升序或降序排列,以便更靈活地組織文件。如何在Windows11/10中按拍攝日期對照片進行排序要按在Windows中拍攝的日期對照片進行排序,請執行以下步驟:打開圖片、桌面或放置照片的任何資料夾在功能區選單中,單

刪除 Windows 11 搜尋中的新聞和趨勢內容的方法 刪除 Windows 11 搜尋中的新聞和趨勢內容的方法 Oct 16, 2023 pm 08:13 PM

當您按一下Windows11中的搜尋欄位時,搜尋介面會自動展開。它在左側顯示最近程式的列表,在右側顯示Web內容。 Microsoft在那裡顯示新聞和趨勢內容。今天的支票宣傳了必應新的DALL-E3圖像生成功能、「與必應聊天龍」的提議、有關龍的更多資訊、來自網路部分的熱門新聞、遊戲建議和趨勢搜尋部分。整個項目清單與您在電腦上的活動無關。雖然一些用戶可能會喜歡查看新聞的能力,但所有這些都可以在其他地方大量獲得。其他人可能會直接或間接將其歸類為促銷甚至廣告。 Microsoft使用介面來推廣自己的內容,

如何在Outlook中按寄件者、主題、日期、類別、大小對電子郵件進行排序 如何在Outlook中按寄件者、主題、日期、類別、大小對電子郵件進行排序 Feb 19, 2024 am 10:48 AM

Outlook提供了許多設定和功能,可協助您更有效地管理工作。其中之一是排序選項,可讓您根據需要對電子郵件進行分類。在這個教學中,我們將學習如何利用Outlook的排序功能,根據寄件者、主題、日期、類別或大小等條件對電子郵件進行整理。這將讓您更輕鬆地處理和查找重要訊息,提高工作效率。 MicrosoftOutlook是一個功能強大的應用程序,可以輕鬆地集中管理您的電子郵件和日曆安排。您可以輕鬆地發送、接收和組織電子郵件,而內建的日曆功能也讓您能夠輕鬆追蹤您即將面臨的活動和約會。如何在Outloo

百度進階搜尋怎麼用 百度進階搜尋怎麼用 Feb 22, 2024 am 11:09 AM

百度高級搜尋怎麼用百度搜尋引擎是目前中國最常用的搜尋引擎之一,它提供了豐富的搜尋功能,其中之一就是進階搜尋。進階搜尋可以幫助使用者更精確地搜尋到所需的信息,提高搜尋效率。那麼,百度高級搜尋要怎麼使用呢?第一步,打開百度搜尋引擎首頁。首先,我們需要開啟一個百度的官方網站,也就是www.baidu.com。這是百度搜索的入口。第二步,點選進階搜尋按鈕。在百度搜尋框的右側,有

閒魚怎麼搜尋用戶 閒魚怎麼搜尋用戶 Feb 24, 2024 am 11:25 AM

閒魚怎麼搜尋用戶?在軟體閒魚中,我們可以直接在軟體裡面去找想要溝通的使用者。但卻不清楚該怎麼搜尋用戶。在搜尋後的用戶中查看即可。接下來就是小編為用戶帶來的搜尋用戶方式介紹的介紹,有興趣的用戶快來一起看看吧!閒魚怎麼搜尋用戶答:在搜尋後的用戶中查看詳情介紹:1、進入軟體,點選搜尋框。 2、輸入使用者名稱,點選搜尋。 3.再選擇搜尋框下的【用戶】,即可找到對應用戶了。

wps表格找不到正在搜尋的資料,請檢查搜尋選項位置 wps表格找不到正在搜尋的資料,請檢查搜尋選項位置 Mar 19, 2024 pm 10:13 PM

智能為主導的時代,辦公室軟體也普及開來,Wps表格由於它的靈活性被廣大的辦公室人員採用。在工作上要求我們不只是要學會簡單的表格製作和文字輸入,我們要掌握更多的操作技能,才能完成實際工作中的任務,有數據的報表,運用表格更方便更清楚更準確。今天我們帶給大家的課程是:wps表格找不到正在搜尋的資料,為什麼請檢查搜尋選項位置? 1.先選取Excel表格,雙擊開啟。然後在該介面中,選取所有的儲存格。  2、然後在該介面中,點選頂部工具列裡「檔案」裡的「編輯」選項。  3、其次在該介面中,點選頂部工具列裡的“

手機淘寶怎麼搜尋店鋪 搜尋店舖名的方法 手機淘寶怎麼搜尋店鋪 搜尋店舖名的方法 Mar 13, 2024 am 11:00 AM

手機淘寶app軟體內提供的商品好物非常多,隨時隨地想買就買,而且件件都是正品,每一件商品的價格標籤一清二楚,完全沒有任何的複雜操作,享受更加便捷的購物樂趣。隨心所欲自由搜尋選購,不同品類的商品板塊都是開放的,添加個人的收貨地址以及聯絡電話,方便快遞公司聯繫到你,實時查看最新的物流動態,那麼有些新人用戶第一次使用它,不知道如何搜尋商品,當然只需要在搜尋欄輸入關鍵字就能找到所有的商品結果,自由選購根本停不下來,現在小編在線詳細為手機淘寶用戶們帶來搜尋店鋪名的方法。  1.先打開手機淘寶app,

Java中的Arrays.sort()方法如何依照自訂比較器對陣列進行排序? Java中的Arrays.sort()方法如何依照自訂比較器對陣列進行排序? Nov 18, 2023 am 11:36 AM

Java中的Arrays.sort()方法如何依照自訂比較器對陣列進行排序?在Java中,Arrays.sort()方法是一個非常有用的方法,可以對陣列進行排序。預設情況下,方法會依照升序排序。但是有時候,我們需要依照自己定義的規則來對陣列進行排序。這時,就需要用到自訂比較器(Comparator)。自訂比較器是一個實作了Comparator介面的類,

See all articles