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

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


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

b45e29b9125c2ab565b5526442437686

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

b45e29b9125c2ab565b5526442437686

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

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

b45e29b9125c2ab565b5526442437686

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

b45e29b9125c2ab565b5526442437686

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

b45e29b9125c2ab565b5526442437686

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

b45e29b9125c2ab565b5526442437686

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

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

b45e29b9125c2ab565b5526442437686

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

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

ថយក្រោយ