• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    thinkphp5 關聯預載入怎么用

    聯系關系查詢的預查詢載入功能,解決了機能與查詢的之間的最優化選擇問題,下面就來看一下具體怎么操作。

    方式/步調

    1. 1

      聯系關系查詢的預查詢載入功能,本家兒要解決了N+1次查詢的問題,這里舉一個例子,查詢3個成果,會進行4次查詢。

      728da9773912b31b8a4a3b228a18367adab4e193.jpg
    2. 2

      若是利用聯系關系預查詢功能,對于一對一聯系關系來說,只有一次查詢,對于一對多聯系關系的話,就可以釀成2次查詢,有用提高機能。

      3ac79f3df8dcd1004ebf0e2a7e8b4710b9122f9e.jpg
    3. 3

      也可以撐持嵌套預載入,例如:

      4b90f603738da97701927020bc51f8198618e378.jpg
    4. 4

      V5.0.7版本以上,撐持利用數組體例界說嵌套預載入,例如下面的預載入要同時獲取用戶的Profile聯系關系模子的Phone、Job和Img子聯系關系模子數據:

      08f790529822720e7c5e14f177cb0a46f21fab2d.jpg
    5. 5

      若是要指心猿意馬屬性查詢,可以利用:

      08f790529822720e7c4314f177cb0a46f21fab28.jpg
    6. 6

      V5.0.4+版本起頭一對一聯系關系預載入撐持兩種體例:JOIN體例(一次查詢)和IN體例(兩次查詢),若是要利用IN體例聯系關系預載入,在聯系關系界說方式中添加

      21a4462309f79052f6a8b13500f3d7ca7bcbd502.jpg
    7. 7

      有些環境下,需要按照查詢出來的數據來決議是否需要利用聯系關系預載入,當然聯系關系查詢自己就能解決這個問題,因為聯系關系查詢是惰性的,不外用預載入的來由也很較著,機能具有優勢。

      延遲預載入僅針對多個數據的查詢,因為單個數據的查詢用延遲預載入和聯系關系惰性查詢沒有任何區別,所以不需要利用延遲預載入。

      若是你的數據集查詢返回的是數據集對象,可以利用挪用數據集對象的load實現延遲預載入:

      024f78f0f736afc350c0c96ebf19ebc4b64512e8.jpg
    8. 8

      若是你的數據集查詢返回的是數組,系統供給了一個load_relation助手函數可以完當作同樣的功能。

      29381f30e924b899e4bb8f3362061d950a7bf632.jpgEND
    • 發表于 2018-03-25 00:00
    • 閱讀 ( 1885 )
    • 分類:科學教育

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆