久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

    <bdo id='ASbLf'></bdo><ul id='ASbLf'></ul>

      <small id='ASbLf'></small><noframes id='ASbLf'>

      1. <tfoot id='ASbLf'></tfoot>
        <i id='ASbLf'><tr id='ASbLf'><dt id='ASbLf'><q id='ASbLf'><span id='ASbLf'><b id='ASbLf'><form id='ASbLf'><ins id='ASbLf'></ins><ul id='ASbLf'></ul><sub id='ASbLf'></sub></form><legend id='ASbLf'></legend><bdo id='ASbLf'><pre id='ASbLf'><center id='ASbLf'></center></pre></bdo></b><th id='ASbLf'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='ASbLf'><tfoot id='ASbLf'></tfoot><dl id='ASbLf'><fieldset id='ASbLf'></fieldset></dl></div>
        <legend id='ASbLf'><style id='ASbLf'><dir id='ASbLf'><q id='ASbLf'></q></dir></style></legend>

        與 Laravel 的友誼系統:多對多關系

        Friendship system with Laravel : Many to Many relationship(與 Laravel 的友誼系統:多對多關系)

        <i id='JgYQE'><tr id='JgYQE'><dt id='JgYQE'><q id='JgYQE'><span id='JgYQE'><b id='JgYQE'><form id='JgYQE'><ins id='JgYQE'></ins><ul id='JgYQE'></ul><sub id='JgYQE'></sub></form><legend id='JgYQE'></legend><bdo id='JgYQE'><pre id='JgYQE'><center id='JgYQE'></center></pre></bdo></b><th id='JgYQE'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='JgYQE'><tfoot id='JgYQE'></tfoot><dl id='JgYQE'><fieldset id='JgYQE'></fieldset></dl></div>
        <tfoot id='JgYQE'></tfoot>
          <bdo id='JgYQE'></bdo><ul id='JgYQE'></ul>
        • <small id='JgYQE'></small><noframes id='JgYQE'>

          • <legend id='JgYQE'><style id='JgYQE'><dir id='JgYQE'><q id='JgYQE'></q></dir></style></legend>
              <tbody id='JgYQE'></tbody>

                  本文介紹了與 Laravel 的友誼系統:多對多關系的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  我正在嘗試使用 Laravel 創建一個友誼系統(我是從它開始的),但我被關系阻止了.事情是這樣的:有一張表 Users 和一張表 Friends ,其中包含以下列:

                  I'm trying to create a Friendship system with Laravel (I'm starting with it) but I'm blocked with relationships. Here's the thing : there is one table Users and one table Friends which contains the following columns :

                  friends: id, user_id, friend_id, accepted.
                  

                  它看起來像多對多,所以這是我在用戶類上設置的:

                  It looks like a Many to Many so here's what I set on User class :

                  class User extends Eloquent {
                      function friends()
                      {
                          return $this->belongsToMany('User');
                      }
                  }
                  

                  但是當我嘗試:

                  $friends = User::find($id)->friends()->get()
                  

                  我有這個錯誤:

                  Base table or view not found: 1146 Table 'base.user_user' doesn't exist
                  

                  我想獲取一個用戶的好友列表,無論用戶是發送邀請還是收到邀請.因此,用戶可以根據 user_id 或friend_id 獲取數據,然后根據該列檢索其他用戶的數據.

                  I would like to get a list of the Friends of a user, no matters if the user sent the invitation or received it. So the user can ba on user_id or on friend_id and then I retrieve the data of the other user depending of that column.

                  有什么想法嗎?謝謝!

                  這是我使用的代碼:

                  $usersWithFriends = User::with('friendsOfMine', 'friendOf')->get();
                  $user = User::find(Auth::id())->friends;
                  
                  foreach($user as $item) {
                      echo $item->first()->pivot->accepted;
                  } 
                  

                  推薦答案

                  tldr;您需要 2 個反向關系才能使其工作,請檢查下面的 SETUP 和 USAGE

                  <小時>

                  首先是錯誤 - 這就是你的關系應該是什么樣子:

                  tldr; you need 2 inverted relationships to make it work, check SETUP and USAGE below


                  First off the error - this is how your relation should look like:

                  function friends()
                  {
                    return $this->belongsToMany('User', 'friends', 'user_id', 'friend_id')
                      // if you want to rely on accepted field, then add this:
                      ->wherePivot('accepted', '=', 1);
                  }
                  

                  然后它就會正常工作:

                  $user->friends; // collection of User models, returns the same as:
                  $user->friends()->get();
                  

                  <小時>

                  設置

                  但是您希望關系以兩種方式工作.Eloquent 不提供這種關系,因此您可以改為使用 2 個反向關系并合并結果:


                  SETUP

                  However you would like the relation to work in both ways. Eloquent doesn't provide a relation of that kind, so you can instead use 2 inverted relationships and merge the results:

                  // friendship that I started
                  function friendsOfMine()
                  {
                    return $this->belongsToMany('User', 'friends', 'user_id', 'friend_id')
                       ->wherePivot('accepted', '=', 1) // to filter only accepted
                       ->withPivot('accepted'); // or to fetch accepted value
                  }
                  
                  // friendship that I was invited to 
                  function friendOf()
                  {
                    return $this->belongsToMany('User', 'friends', 'friend_id', 'user_id')
                       ->wherePivot('accepted', '=', 1)
                       ->withPivot('accepted');
                  }
                  
                  // accessor allowing you call $user->friends
                  public function getFriendsAttribute()
                  {
                      if ( ! array_key_exists('friends', $this->relations)) $this->loadFriends();
                  
                      return $this->getRelation('friends');
                  }
                  
                  protected function loadFriends()
                  {
                      if ( ! array_key_exists('friends', $this->relations))
                      {
                          $friends = $this->mergeFriends();
                  
                          $this->setRelation('friends', $friends);
                      }
                  }
                  
                  protected function mergeFriends()
                  {
                      return $this->friendsOfMine->merge($this->friendOf);
                  }
                  

                  用法

                  通過這樣的設置,您可以做到:

                  USAGE

                  With such setup you can do this:

                  // access all friends
                  $user->friends; // collection of unique User model instances
                  
                  // access friends a user invited
                  $user->friendsOfMine; // collection
                  
                  // access friends that a user was invited by
                  $user->friendOf; // collection
                  
                  // and eager load all friends with 2 queries
                  $usersWithFriends = User::with('friendsOfMine', 'friendOf')->get();
                  
                  // then
                  $users->first()->friends; // collection
                  
                  // Check the accepted value:
                  $user->friends->first()->pivot->accepted;
                  

                  這篇關于與 Laravel 的友誼系統:多對多關系的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  Deadlock exception code for PHP, MySQL PDOException?(PHP、MySQL PDOException 的死鎖異常代碼?)
                  PHP PDO MySQL scrollable cursor doesn#39;t work(PHP PDO MySQL 可滾動游標不起作用)
                  PHP PDO ODBC connection(PHP PDO ODBC 連接)
                  Using PDO::FETCH_CLASS with Magic Methods(使用 PDO::FETCH_CLASS 和魔術方法)
                  php pdo get only one value from mysql; value that equals to variable(php pdo 只從 mysql 獲取一個值;等于變量的值)
                  MSSQL PDO could not find driver(MSSQL PDO 找不到驅動程序)

                  • <legend id='6BEal'><style id='6BEal'><dir id='6BEal'><q id='6BEal'></q></dir></style></legend>
                    <i id='6BEal'><tr id='6BEal'><dt id='6BEal'><q id='6BEal'><span id='6BEal'><b id='6BEal'><form id='6BEal'><ins id='6BEal'></ins><ul id='6BEal'></ul><sub id='6BEal'></sub></form><legend id='6BEal'></legend><bdo id='6BEal'><pre id='6BEal'><center id='6BEal'></center></pre></bdo></b><th id='6BEal'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='6BEal'><tfoot id='6BEal'></tfoot><dl id='6BEal'><fieldset id='6BEal'></fieldset></dl></div>
                          • <bdo id='6BEal'></bdo><ul id='6BEal'></ul>

                            <small id='6BEal'></small><noframes id='6BEal'>

                              <tbody id='6BEal'></tbody>

                            <tfoot id='6BEal'></tfoot>
                          • 主站蜘蛛池模板: 99热碰 | 正在播放国产精品 | 日韩视频区 | 精品久久久久久亚洲综合网 | 婷婷中文在线 | 99精品在线免费观看 | 中文成人无字幕乱码精品 | 午夜小视频在线播放 | 国产成人91视频 | 午夜影视在线观看 | 国产一区二区精华 | 手机在线不卡av | 国产免费一区二区三区 | 99久久精品国产一区二区三区 | 玖草资源 | 成人激情视频免费在线观看 | 在线精品一区二区 | 国产精品视频一区二区三区, | 玖玖视频免费 | 中文字幕乱码视频32 | 亚洲欧美综合精品另类天天更新 | 99视频免费在线 | 先锋资源站 | 欧美激情综合色综合啪啪五月 | 日本久久精品视频 | 超碰国产在线 | 精品在线观看一区二区 | 黄色在线免费观看视频 | 韩国精品在线观看 | 成人福利片| 一级一级毛片免费看 | 99国产精品久久久 | 久久精品这里精品 | 精品一区二区av | 天天精品在线 | 成人久久久 | 精品国产一区二区三区久久狼黑人 | 亚洲免费大片 | 国产成人黄色 | 亚洲欧美综合精品久久成人 | 一区二区亚洲 |