簡體   English   中英

根據兩個ID選擇記錄

[英]Selecting Records depending on two IDs

這有點復雜,但是無論如何..好吧,我有四個表

1-Projects 

 id     | int 11
 name 
2-Sections

 id         | int 11
 project_id | int 11
 name
3-Users

 id         | int 11

4-User_Section_project (this table is used to assign users to sections they will work on in the project

id         | int 11
project_id | int 11
section_id | int 11
user_id    | int 11

無論如何,有沒有使用ORM使類似的東西起作用,我只得到分配的部分

$sections = $user->projects()->sections()

我在用戶模型中使用以下代碼確定了這一點

 public function workshops()
{


    return $this->belongsToMany('section', 'user_project_section', 'user_id', 'section_id')->whereIn('user_project_section.project_id', array(1,2,3));
}

我這樣稱呼它

@foreach ( $user->sections as $section)
                    {{$section->name}}

                @endforeach

此代碼將為項目1,2,3中的用戶獲取關聯的部分。 如果我想為指定的項目創建它,則傳遞一個參數,問題是在視圖中將括號()添加到該函數的調用時它不起作用,所以我無法傳遞參數

@foreach ( $user->sections() as $section)
                    {{$section->name}}

                @endforeach

更糟糕的是,沒有錯誤消息彈出並監控我的Mysql Server查詢,根本沒有查詢(執行)此消息。 我真的需要傳遞一個參數更多信息:使用Print_r似乎不帶()它返回Collection Object,帶它返回BelongsToMany Object。

要回答您的問題,是的。 有人會為您實際編寫所有代碼並將其放在這里嗎? 可能不是。 如果您對使用ORM感興趣,那么我可以確定那里有一些高質量的文檔,您可以閱讀和使用。

ORM無非是一種面向對象的數據庫處理方法。 您將表像對象一樣對待,而不是像對待表一樣對待表,如此對其進行操作,從而提供了代碼重用和代碼交互的能力。 但是,使用ORM的權衡通常是開銷。 這就是為什么許多小型項目不使用它的原因-對於他們的需求來說太多了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM