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

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


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

b45e29b9125c2ab565b5526442437686

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

b45e29b9125c2ab565b5526442437686

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

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

b45e29b9125c2ab565b5526442437686

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

b45e29b9125c2ab565b5526442437686

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

b45e29b9125c2ab565b5526442437686

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

b45e29b9125c2ab565b5526442437686

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

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

b45e29b9125c2ab565b5526442437686

இதைத் தடுக்க, நாங்கள் அடங்கும் stringhelper நூலகம் மற்றும் திரும்ப ஒரு மாதிரி காணப்படவில்லை என்றால், இதை காலியாக காலியாக வர்க்கத்தின் ஒரு சிறப்பு பொருள்:

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

மீண்டும்