ល្បិចសម្រាប់ទំនាក់ទំនងដ៏រីករាយ

ចំណុចខ្លាំងមួយរបស់ Laravel គឺវាក្យសម្ព័ន្ធឆើតឆាយរបស់វា។ ប្រសិនបើអ្នកមាន គំរូ និងទំនាក់ទំនង ជាច្រើននៅក្នុង Laravel (ដោយសារតែតារាងជាច្រើននៅក្នុងមូលដ្ឋានទិន្នន័យ) ការឆ្លងកាត់ជាញឹកញាប់អាចបញ្ចប់ដោយកូដមិនសូវឆើតឆាយ។ យូរ ៗ ទៅ ផ្នែកបន្ថែមតូចៗចំនួនបីបានបង្ហាញថាជោគជ័យសម្រាប់ខ្ញុំ ដែលខ្ញុំចង់ណែនាំដោយសង្ខេបខាងក្រោម។ ដើម្បីធ្វើដូចនេះយើងគ្រាន់តែប្រើមរតកខ្លះ វិធីសាស្រ្តវេទមន្ត និងការប្រមូលផ្ទាល់ខ្លួន។


ដំបូងយើងបង្កើតគំរូថ្មីនៅក្រោម កម្មវិធី \ ConvenienceModel.php:

b45e29b9125c2ab565b5526442437686

បន្ទាប់មកយើងអនុញ្ញាតឱ្យម៉ូដែលទាំងអស់ទទួលមរតកពី ConvenienceModel ថ្មីរបស់យើង:

b45e29b9125c2ab565b5526442437686

លាយមុខងារផ្ទាល់ខ្លួនរបស់អ្នកជាមួយទំនាក់ទំនង

ប្រសិនបើអ្នកចង់ទទួលបានម៉ូដែលភ្ជាប់អ្នកប្រើវាក្យសម្ព័ន្ធស្តង់ដារដើម្បីហៅពួកគេ:

b45e29b9125c2ab565b5526442437686

ប្រសិនបើអ្នកបន្ថែមតក្កវិជ្ជាអាជីវកម្មផ្ទាល់ខ្លួនរបស់អ្នកអ្នកចង់ប្រើការកត់សំគាល់ករណីអូដ្ឋ (ទាប):

b45e29b9125c2ab565b5526442437686

យើងចង់ធ្វើឱ្យស្តង់ដារវាក្យសម្ព័ន្ធនៃវ៉ារ្យ៉ង់ទាំងពីរមានលក្ខណៈស្តង់ដារ។ ដើម្បីធ្វើដូចនេះយើងបានបន្ថែមវិធីសាស្រ្តវេទមន្ត __call ទៅ ConvenienceModel នេះ:

b45e29b9125c2ab565b5526442437686

ការហៅនេះក៏អាចធ្វើទៅបានផងដែរនៅក្នុងឧទាហរណ៍ខាងលើ:

b45e29b9125c2ab565b5526442437686

ពិនិត្យវត្ថុទទេ

ប្រសិនបើអ្នកចង់បញ្ចេញឈ្មោះប្រទេសសម្រាប់អាសយដ្ឋានផ្ទាល់ខ្លួន អ្នកតែងតែឃើញកូដខាងក្រោម:

b45e29b9125c2ab565b5526442437686

ដើម្បីទប់ស្កាត់បញ្ហានេះ យើងរួមបញ្ចូលបណ្ណាល័យ stringhelper ហើយត្រឡប់វត្ថុពិសេសនៃថ្នាក់ទទេ ទទេ ប្រសិនបើគំរូមិនត្រូវបានរកឃើញ:

b45e29b9125c2ab565b5526442437686

នេះ​មាន​ន័យ​ថា​ការ​ហៅ​ទូរសព្ទ​ទទួល​បាន​ជោគជ័យ (ក្នុង​ឧទាហរណ៍​នេះ ប្រសិន​បើ​មាន​អ្វី​មួយ​ត្រូវ​បាន​រក​ឃើញ ឈ្មោះ​ប្រទេស​គឺ​ជា​លទ្ធផល​ក្នុង​ករណី​ផ្សេង​ទៀត​ជា​ខ្សែ​អក្សរ​ទទេ):

b45e29b9125c2ab565b5526442437686

ប្រសិនបើយើងចង់និយាយអំពីករណីដែលអ្នកប្រើប្រាស់ដែលមានអត្តសញ្ញាណប័ណ្ណលេខ ៤២ ប្រហែលជាមិនមាននោះយើងក៏នឹងបង្កើតមុខងារជំនួយតូចមួយសម្រាប់បញ្ហានេះដែរ។:

b45e29b9125c2ab565b5526442437686

ការហៅដូចខាងក្រោមផ្តល់នូវខ្សែអក្សរទទេទោះបីជាអ្នកប្រើប្រាស់មិនមានក៏ដោយ:

b45e29b9125c2ab565b5526442437686

ទំនាក់ទំនងងាយស្រួល n: m ទំនាក់ទំនង

ចុងបញ្ចប់យើងចង់ធ្វើឱ្យកូដសាមញ្ញដូចខាងក្រោម:

b45e29b9125c2ab565b5526442437686

ចំពោះបញ្ហានេះយើងប្រើលទ្ធភាពនៃ ការប្រមូលតាមបំណង ។ ដំបូងយើងកំពុងពង្រីក គំរូភាពងាយស្រួល:

b45e29b9125c2ab565b5526442437686

បន្ទាប់មកយើងបង្កើត កម្មវិធីឯកសារ\Helpers\ConvenienceCollection.php ដែលធានាថាការហៅមុខងារមិនស្គាល់សម្រាប់ការប្រមូល ប្រតិបត្តិមុខងារសម្រាប់ធាតុទាំងអស់នៅក្នុងបណ្តុំ។:

b45e29b9125c2ab565b5526442437686

ដូច្នេះយើងអាចប្រើលេខកូដខាងក្រោមដើម្បីបង្កើតឈ្មោះនៃប្រទេសទាំងអស់នៃអាសយដ្ឋានទាំងអស់របស់ឪពុកម្តាយទាំងអស់របស់មនុស្ស:

b45e29b9125c2ab565b5526442437686

ប៉ុន្តែការហៅដូចខាងក្រោមក៏អាចធ្វើទៅបានដែរ:

b45e29b9125c2ab565b5526442437686

តម្រៀបតាមជួរឈរច្រើន

ការហៅទូរសព្ទខាងក្រោមគ្រាន់តែតម្រៀបតាម ទីតាំង ប៉ុណ្ណោះ ទោះបីជាវាប្រហែលជាមិនចង់បានក៏ដោយ។:

b45e29b9125c2ab565b5526442437686

ដើម្បីបើកដំណើរការតម្រៀបតាមជួរឈរជាច្រើនយើងកំពុងពង្រីក ConvenienceCollection របស់យើង:

b45e29b9125c2ab565b5526442437686

ជាមួយនឹងការដែលយើងអាចតម្រៀបការប្រមូលនេះបើយោងតាមជួរឈរជាច្រើនជាមួយ:

b45e29b9125c2ab565b5526442437686

ការតម្រៀបតាមស្តង់ដារ

យើងកំពុងពង្រីក ConvenienceCollection ជាមួយមុខងារជំនួយមួយទៀត:

b45e29b9125c2ab565b5526442437686

ឥឡូវអ្នកអាចផ្តល់ឱ្យគំរូនីមួយៗនូវមុខងារតម្រៀបស្តង់ដារបុគ្គល:

b45e29b9125c2ab565b5526442437686

ដូច្នេះយើងអាចរៀបចំការប្រមូលជាមួយ:

b45e29b9125c2ab565b5526442437686

ឈ្មោះវត្ថុ

ម៉ូដែលនីមួយៗអនុវត្តវិធីសាស្រ្ត GetLabel (getName ខុសគ្នាអាស្រ័យលើម៉ូដែល):

b45e29b9125c2ab565b5526442437686

ជាមួយនេះអ្នកអាចបង្កើតឈ្មោះនៃវត្ថុបានយ៉ាងឆាប់រហ័សនិងងាយស្រួល។ បន្ទាប់មកអ្នកអាចអនុវត្តវិធីជំនួយ sortByLabel ក្នុង ConvenienceCollection:

b45e29b9125c2ab565b5526442437686

លទ្ធផលទទេ

ប្រសិនបើជំហានមធ្យមគឺទទេមុខងារ Laravel ដំបូង () និងចុងក្រោយ () ជាធម្មតាត្រឡប់សូន្យ។ ដូច្នេះយើងណែនាំ getFirst () និង getLast () ដូច្នេះការហៅដូចខាងក្រោមតែងតែជោគជ័យ:

b45e29b9125c2ab565b5526442437686

ជាមួយនេះយើងប្រគល់ __empty_helper ដែល __x ទទួលស្គាល់:

b45e29b9125c2ab565b5526442437686

ថយក្រោយ