லாராவெல் சொற்பொழிவு உறவுகளுக்கான தந்திரங்கள்

லாராவெல்லின் பலங்களில் ஒன்று அதன் நேர்த்தியான தொடரியல் ஆகும். Laravel இல் உங்களுக்கு நிறைய மாதிரிகள் மற்றும் உறவுகள் இருந்தால் (தரவுத்தளத்தில் நிறைய அட்டவணைகள் இருப்பதால்), பயணிப்பது பெரும்பாலும் குறைவான நேர்த்தியான குறியீட்டில் முடிவடையும். காலப்போக்கில், மூன்று சிறிய நீட்டிப்புகள் எனக்கு வெற்றிகரமாக நிரூபிக்கப்பட்டுள்ளன, அதை நான் சுருக்கமாக கீழே அறிமுகப்படுத்த விரும்புகிறேன். இதைச் செய்ய, நாங்கள் சில பரம்பரை, மந்திர முறைகள் மற்றும் தனிப்பயன் சேகரிப்புகளைப் பயன்படுத்துகிறோம்.


முதலில் பயன்பாட்டின் கீழ் ஒரு புதிய மாடலை உருவாக்குகிறோம் \ ConvenienceModel.php:

b45e29b9125c2ab565b5526442437686

எல்லா மாடல்களும் எங்கள் புதிய வசதியான மாடலில் இருந்து பெற அனுமதிக்கிறோம்:

b45e29b9125c2ab565b5526442437686

உறவுகளுடன் உங்கள் சொந்த செயல்பாடுகளை கலக்கவும்

இணைக்கப்பட்ட மாதிரிகளை நீங்கள் பெற விரும்பினால், அவற்றை அழைக்க நிலையான தொடரியல் பயன்படுத்துகிறீர்கள்:

b45e29b9125c2ab565b5526442437686

நீங்கள் இப்போது உங்கள் சொந்த வணிக தர்க்கத்தைச் சேர்த்தால், நீங்கள் (குறைந்த) ஒட்டக வழக்கு குறியீட்டைப் பயன்படுத்த விரும்புகிறீர்கள்:

b45e29b9125c2ab565b5526442437686

இரண்டு வகைகளின் தொடரியல் தரப்படுத்த விரும்புகிறோம். இதை செய்ய, நாம் மாய முறையைச் சேர்க்க __call ConvenienceModel செய்ய:

b45e29b9125c2ab565b5526442437686

மேலே உள்ள எடுத்துக்காட்டில் இந்த அழைப்பும் சாத்தியமாகும்:

b45e29b9125c2ab565b5526442437686

வெற்று பொருட்களை சரிபார்க்கவும்

தனிப்பட்ட முகவரிக்கு நாட்டின் பெயரை வெளியிட விரும்பினால், பின்வரும் குறியீட்டை நீங்கள் அடிக்கடி பார்க்கிறீர்கள்:

b45e29b9125c2ab565b5526442437686

இதைத் தடுக்க, நாங்கள் ஸ்டிரிங்ஹெல்பர் நூலகத்தைச் சேர்த்து, மாதிரி கிடைக்கவில்லை என்றால், காலி வகுப்பின் சிறப்புப் பொருளைத் திருப்பித் தருகிறோம்.:

b45e29b9125c2ab565b5526442437686

இதன் பொருள் அழைப்பு வெற்றிகரமாக உள்ளது (இந்த எடுத்துக்காட்டில், ஏதாவது கண்டுபிடிக்கப்பட்டால், நாட்டின் பெயர் வெளியீடாகும், மற்ற எல்லா நிகழ்வுகளிலும் வெற்று சரம்):

b45e29b9125c2ab565b5526442437686

ஐடி 42 ஐக் கொண்ட பயனர் கூட இருக்காது என்ற வழக்கை நாங்கள் மறைக்க விரும்பினால், இதற்காக ஒரு சிறிய உதவி செயல்பாட்டையும் உருவாக்குவோம்:

b45e29b9125c2ab565b5526442437686

பின்வரும் அழைப்பு பயனர் இல்லாவிட்டாலும் வெற்று சரத்தை வழங்குகிறது:

b45e29b9125c2ab565b5526442437686

வசதியாக பயணிக்க n: மீ உறவுகள்

இறுதியாக, பின்வரும் குறியீட்டை எளிதாக்க விரும்புகிறோம்:

b45e29b9125c2ab565b5526442437686

இதற்காக தனிப்பயன் வசூல் செய்வதற்கான வாய்ப்பைப் பயன்படுத்துகிறோம். நாங்கள் முதலில் வசதி மாதிரியை விரிவுபடுத்துகிறோம்:

b45e29b9125c2ab565b5526442437686

பின்னர் நாங்கள் கோப்பு பயன்பாட்டை உருவாக்குகிறோம்\Helpers\ConvenienceCollection.php , இது சேகரிப்புகளுக்கான அறியப்படாத செயல்பாடுகளை அழைப்பது சேகரிப்பில் உள்ள அனைத்து உருப்படிகளின் செயல்பாட்டைச் செயல்படுத்துவதை உறுதி செய்கிறது.:

b45e29b9125c2ab565b5526442437686

எனவே நபரின் அனைத்து பெற்றோரின் அனைத்து முகவரிகளின் அனைத்து நாடுகளின் பெயர்களையும் வெளியிடுவதற்கு பின்வரும் குறியீட்டைப் பயன்படுத்தலாம்:

b45e29b9125c2ab565b5526442437686

ஆனால் பின்வருபவை போன்ற அழைப்புகளும் சாத்தியமாகும்:

b45e29b9125c2ab565b5526442437686

பல நெடுவரிசைகளால் வரிசைப்படுத்து

பின்வரும் அழைப்பு இருப்பிடத்தின் அடிப்படையில் மட்டுமே வரிசைப்படுத்தப்படுகிறது, இருப்பினும் அது விரும்பப்படவில்லை:

b45e29b9125c2ab565b5526442437686

பல நெடுவரிசைகளின்படி வரிசையாக்கத்தை இயக்க, நாங்கள் எங்கள் வசதியான சேகரிப்பை விரிவுபடுத்துகிறோம்:

b45e29b9125c2ab565b5526442437686

அதனுடன் பல நெடுவரிசைகளின்படி சேகரிப்பை வரிசைப்படுத்தலாம்:

b45e29b9125c2ab565b5526442437686

நிலையான வரிசையாக்கம்

மற்றொரு துணை செயல்பாட்டுடன் வசதியான சேகரிப்பை விரிவுபடுத்துகிறோம்:

b45e29b9125c2ab565b5526442437686

இப்போது நீங்கள் ஒவ்வொரு மாதிரிக்கும் ஒரு தனிப்பட்ட நிலையான வரிசையாக்க செயல்பாட்டைக் கொடுக்கலாம்:

b45e29b9125c2ab565b5526442437686

எனவே ஒரு தொகுப்பை நாம் வரிசைப்படுத்தலாம்:

b45e29b9125c2ab565b5526442437686

பொருள் பெயர்கள்

ஒவ்வொரு மாதிரியும் getLabel முறையை செயல்படுத்துகிறது (getName மாதிரியைப் பொறுத்து மாறுபடும்):

b45e29b9125c2ab565b5526442437686

இதன் மூலம் நீங்கள் ஒரு பொருளின் பெயரை விரைவாகவும் எளிதாகவும் காட்டலாம். நீங்கள் வசதியான சேகரிப்பில் sortByLabel உதவி முறையை செயல்படுத்தலாம்:

b45e29b9125c2ab565b5526442437686

வெற்று முடிவுகள்

ஒரு இடைநிலை படி காலியாக இருந்தால், லாரவெல் முதல் () மற்றும் கடைசி () பொதுவாக பூஜ்ஜியத்தைத் தருகிறது. எனவே getFirst () மற்றும் getLast () ஐ அறிமுகப்படுத்துகிறோம், இதனால் பின்வரும் அழைப்பு எப்போதும் வெற்றி பெறுகிறது:

b45e29b9125c2ab565b5526442437686

ஹெரூவித் __x அங்கீகரிக்கும் ஒரு __empty_helper ஐ மீண்டும் வழங்குகிறோம்:

b45e29b9125c2ab565b5526442437686

மீண்டும்