3 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊
請(qǐng)?jiān)囋囘@個(gè)
$data['user_test'] = DB::table('language_skills_selected') ->select("language_skills.language_skill") ->join("language_skills","language_skills_selected.language_skills","=","language_skills.id") ->where('language_skills_selected.user_id', $id)->get();

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
你可以使用這個(gè)代碼
1 -> query for Get All skills
$data['user_test'] = DB::table('language_skills_selected')->where('user_id', $id)->get();
2 -> Query For language_skills Name
$data['language_skills'] = \App\LanguageSkill::where('id',$data['user_test']['language_skills])->get('language_skills');
3 -> Set Name instead of ID
$data['user_test']['language_skills'] = $data['language_skills'];
您可以使用 foreach 循環(huán);我建議更改變量的名稱(chēng)

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊
命名約定
首先,我會(huì)改變結(jié)構(gòu)以使用傳統(tǒng)的 Laravel 命名。它還可以幫助其他人更好地理解表中的關(guān)系。
您已經(jīng)將id
其用作自動(dòng)增量主鍵,這很好。如果您隨后通過(guò)外鍵引用另一個(gè)表,請(qǐng)使用單數(shù)表名,后跟_id
. 所以你的language_skills_selected
表結(jié)構(gòu)變成
language_skills_selectedid
int primaryuser_id
int 外鍵(用戶(hù)表)language_skill_id
int 外鍵(language_skills 表)
language_skillsid
int 主要name
字符串(名稱(chēng),單數(shù),因?yàn)槠渲兄挥幸粋€(gè)名稱(chēng))
我會(huì)將列重命名language_skills
為name
,因?yàn)楸砻呀?jīng)表明表中的每個(gè)條目都是語(yǔ)言技能。列名應(yīng)該更能描述它實(shí)際包含的內(nèi)容,在您的情況下,language_skills
列包含名稱(chēng)。因此,您不妨以這種方式命名該列。
連接表
在 Laravel 中,您可以使用查詢(xún)構(gòu)建器 (參見(jiàn)此處)來(lái)構(gòu)建查詢(xún),或者您可以使用Eloquent 模型(參見(jiàn)此處)。我強(qiáng)烈建議您仔細(xì)閱讀文檔的兩個(gè)部分。它是框架的重要組成部分,選擇何時(shí)使用取決于您的用例。
現(xiàn)在終于到了你的解決方案。如果您更改了列名,則可以在兩個(gè)表之間編寫(xiě)連接語(yǔ)句,如下所示:
$data['user_test'] = DB::table('language_skills_selected') ->join('language_skills', 'language_skills_selected.language_skill_id', '=', 'language_skills.id') ->where('user_id', $id) ->get();
然后,您將獲得一個(gè)連接結(jié)果,您也可以在其中訪問(wèn) language_skill 的名稱(chēng)。
我還建議您總體上閱讀更多有關(guān) MySQL 的信息,因?yàn)樵谏钊肓私庠摽蚣苤?,這是一個(gè)很好的基礎(chǔ)知識(shí)。查找 MySQL 連接,并閱讀這樣的材料。
- 3 回答
- 0 關(guān)注
- 173 瀏覽
添加回答
舉報(bào)