লারাভেল সুস্পষ্ট সম্পর্কের জন্য কৌশল

লারাভেলের অন্যতম শক্তি হ'ল এর মার্জিত সিনট্যাক্স। আপনার যদি লারাভেলে প্রচুর মডেল এবং সম্পর্ক রয়েছে (ডাটাবেসে প্রচুর টেবিলের কারণে), ট্র্যাশিংয়ে প্রায়শই কম মার্জিত কোডের অবসান হতে পারে। সময়ের সাথে সাথে তিনটি ছোট এক্সটেনশন আমার পক্ষে প্রমাণিত হয়েছে, যা আমি নীচে সংক্ষেপে উল্লেখ করতে চাই। আমরা কেবল কিছু উত্তরাধিকার, যাদু পদ্ধতি এবং কাস্টম সংগ্রহ ব্যবহার করি।


প্রথমে আমরা অ্যাপ্লিকেশন \ কনভেনিয়েন্সমডেল.পিপি এর অধীনে একটি নতুন মডেল তৈরি করি:

b45e29b9125c2ab565b5526442437686

তারপরে আমরা সমস্ত মডেলকে আমাদের নতুন কনভেনিয়েন্সমডেল থেকে উত্তরাধিকার সূত্রে দেই:

b45e29b9125c2ab565b5526442437686

সম্পর্কের সাথে আপনার নিজস্ব ফাংশনগুলি মিশ্রিত করুন

আপনি যদি সংযুক্ত মডেলগুলি পেতে চান, আপনি তাদের কল করতে স্ট্যান্ডার্ড সিনট্যাক্স ব্যবহার করুন:

b45e29b9125c2ab565b5526442437686

আপনি যদি এখন নিজের ব্যবসায়ের যুক্তি যুক্ত করেন তবে আপনি (নিম্ন) উটের মামলার স্বরলিপি ব্যবহার করতে চান:

b45e29b9125c2ab565b5526442437686

আমরা উভয় ভেরিয়েন্টের বাক্য গঠনটি মানক করতে চাই। এটি করার জন্য, আমরা যাদু পদ্ধতিটি __ কলটি কনভেনিয়েন্সমডেলে যুক্ত করি:

b45e29b9125c2ab565b5526442437686

এই কলটি উপরের উদাহরণেও তাই সম্ভব:

b45e29b9125c2ab565b5526442437686

খালি জিনিসগুলি পরীক্ষা করুন

যদি আপনি দেশের নামটি কোনও ব্যক্তিগত ঠিকানায় আউটপুট করতে চান তবে আপনি প্রায়শই নীচের কোডটি দেখতে পাবেন:

b45e29b9125c2ab565b5526442437686

এটিকে রোধ করতে, আমরা অন্তর্ভুক্ত stringhelper গ্রন্থাগারের আসতে খালি খালি বর্গ একটি বিশেষ বস্তুর যদি একটি মডেল পাওয়া যায় না:

b45e29b9125c2ab565b5526442437686

এটি কলটিকে সফলও করে তোলে (উদাহরণস্বরূপ, যদি কিছু পাওয়া যায় তবে দেশের নাম আউটপুট হয়, অন্য সব ক্ষেত্রে খালি স্ট্রিং থাকে)।

b45e29b9125c2ab565b5526442437686

যদি আমরা এই কেসটিও কভার করতে চাই যে ৪২ আইডি ব্যবহারকারীর উপস্থিতি নাও থাকতে পারে তবে আমরা এর জন্য একটি ছোট সহায়ক ফাংশনও তৈরি করব:

b45e29b9125c2ab565b5526442437686

নীচের কলটি এভাবে ব্যবহারকারীর অস্তিত্ব না থাকলেও একটি খালি স্ট্রিং সরবরাহ করে:

b45e29b9125c2ab565b5526442437686

সুবিধামত ট্র্যাভার্স এন: মি সম্পর্ক

অবশেষে, আমরা নিম্নলিখিত কোডটি সহজ করতে চাই:

b45e29b9125c2ab565b5526442437686

এর জন্য আমরা কাস্টম সংগ্রহের সম্ভাবনাটি ব্যবহার করি। আমরা প্রথমে সুবিধার মডেলটি প্রসারিত করছি:

b45e29b9125c2ab565b5526442437686

তারপরে আমরা ফাইলগুলি অ্যাপ্লিকেশন \ সহায়তাকারী \ কনভেনিয়েন্সকলেশন.এফপি তৈরি করি যা এটি নিশ্চিত করে যে সংগ্রহগুলিতে অজানা ফাংশনগুলি কল করে সংগ্রহের সমস্ত আইটেমের জন্য ফাংশন সম্পাদন করে:

b45e29b9125c2ab565b5526442437686

সুতরাং আমরা নিম্নলিখিত কোডটি ব্যবহার করে ব্যক্তির সমস্ত পিতামাতার সমস্ত ঠিকানার সমস্ত দেশের সমস্ত নাম আউটপুট করতে পারি:

b45e29b9125c2ab565b5526442437686

তবে নীচের মতো কলগুলিও সম্ভব:

b45e29b9125c2ab565b5526442437686

একাধিক কলাম অনুসারে বাছাই করুন

নিম্নলিখিত কলটি কেবলমাত্র অবস্থান অনুসারে বাছাই করে , যদিও এটি সম্ভবত আপনি চেয়েছিলেন:

b45e29b9125c2ab565b5526442437686

একাধিক কলাম দ্বারা বাছাই সক্ষম করার জন্য আমরা আমাদের কনভেনিয়েন্স সংগ্রহটি প্রসারিত করছি:

b45e29b9125c2ab565b5526442437686

এটির সাহায্যে আমরা বেশ কয়েকটি কলামের সাহায্যে সংগ্রহটি সাজান:

b45e29b9125c2ab565b5526442437686

স্ট্যান্ডার্ড বাছাই

আমরা অন্য সহায়ক ফাংশন দিয়ে কনভেনিয়েন্স সংগ্রহটি প্রসারিত করছি:

b45e29b9125c2ab565b5526442437686

এখন আপনি প্রতিটি মডেলকে একটি পৃথক স্ট্যান্ডার্ড বাছাই ফাংশন দিতে পারেন:

b45e29b9125c2ab565b5526442437686

এটির সাহায্যে আমরা সংগ্রহটি বাছাই করতে পারি:

b45e29b9125c2ab565b5526442437686

বস্তুর নাম

প্রতিটি মডেল getLabel পদ্ধতি প্রয়োগ করে (getName মডেলের উপর নির্ভর করে):

b45e29b9125c2ab565b5526442437686

এটির সাহায্যে আপনি দ্রুত এবং সহজেই কোনও জিনিসের নাম প্রদর্শন করতে পারেন। তারপরে আপনি কনভেনিয়েন্স কালেকশনে বাছাই করা লেবেল সহায়তা পদ্ধতিটি প্রয়োগ করতে পারেন:

b45e29b9125c2ab565b5526442437686

খালি ফলাফল

যদি একটি মধ্যবর্তী পদক্ষেপ খালি থাকে, লারাভেল প্রথম () এবং শেষ () সাধারণত ফাংশন শূন্য ফিরে আসে। অতএব আমরা getFrst () এবং getLast () প্রবর্তন করি যাতে নীচের কলটি সর্বদা সফল হয়:

b45e29b9125c2ab565b5526442437686

এর সাথে আমরা __x স্বীকৃত একটি __empty_helper ফিরিয়ে দেব:

b45e29b9125c2ab565b5526442437686

পেছনে