যে লারাভেল ট্রিকসগুলো আপনার জানা উচিত
- API Resources: With or Without “data”?
আপনি যদি ডেটা রিটার্ন করতে Eloquent API রিসোর্স ব্যবহার করেন, তাহলে সেগুলো স্বয়ংক্রিয়ভাবে 'data' (data.data) এ মোড়ানো হবে । আপনি নীচের প্রক্রিয়াটির মাধ্যমে সেই
অতিরিক্ত ইনার ডেটা রেপ থেকে পরিত্রাণ পেতে পারেন।
- আপনি আপনার ইনার ডেটা এলিমেন্টগুলো কী হওয়া উচিত তাও কাস্টমাইজ করতে পারেন, data.data এর পরিবর্তে data.polls দিয়ে ডেটা রিটার্ন করুন।
উদাহরণ
- Avoid N+1 queries in API resources
whenLoaded মেথড শর্তসাপেক্ষে একটি রিলেশনশিপ লোড করতে ব্যবহার করা যেতে পারে। অপ্রয়োজনীয় রিলেশনশিপ লোড না করার জন্য, এই মেথডটি রিলেশনশিপের পরিবর্তে রিলেশনশিপের নাম গ্রহণ করে। whenLoaded() ছাড়া পোস্টগুলির জন্য সর্বদা একটি কুয়েরি থাকে।
- অথরাইজেশন হেডার থেকে একটি বিয়ারার টোকেন (Bearer Token) পাবেন।
- Exact Laravel version
প্রথমে আপনার ওয়েব অ্যাপে cd করুন এবং লারাভেল ভার্সন পেতে নীচের কমান্ডটি রান করুন।
php artisan --version
- How to create a custom command
php artisan make:command SendMailToAllUser
উপরের কমান্ডটি আপনার " /app/Console/Commands" এ একটি কাস্টম কমান্ড তৈরি করবে
- Hide your custom command
কোডটি আর্টিসান লিস্ট (Artisan List) থেকে কাস্টম কমান্ডটি লুকিয়ে রাখবে।
- Eloquent where date methods
“ whereDate / whereMonth / whereDay / whereYear / whereTime ”
- whereDate: whereDate মেথডটি একটি কলামের ভ্যালু একটি তারিখের সাথে তুলনা করতে ব্যবহার করা যেতে পারে:
- whereMonth: whereMonth মেথডটি একটি কলামের ভ্যালু একটি নির্দিষ্ট মাসের সাথে তুলনা করতে ব্যবহার করা যেতে পারে:
- whereDay: whereDay মেথডটি একটি কলামের ভ্যালু মাসের একটি নির্দিষ্ট দিনের সাথে তুলনা করতে ব্যবহার করা যেতে পারে:
- whereYear: whereYear মেথডটি একটি কলামের ভ্যালু একটি নির্দিষ্ট বছরের সাথে তুলনা করতে ব্যবহার করা যেতে পারে:
- whereTime: whereTime মেথডটি একটি কলামের ভ্যালু একটি নির্দিষ্ট সময়ের সাথে তুলনা করতে ব্যবহার করা যেতে পারে:
- Increment & Decrement
কুয়েরি বিল্ডার একটি প্রদত্ত কলামের ভ্যালু বৃদ্ধি বা হ্রাস করার জন্য কনভেনিয়েন্ট মেথডস সরবরাহ করে। এই উভয় মেথডই অন্তত একটি আর্গুমেন্ট গ্রহণ করে: পরিবর্তন করার জন্য কলাম। কলামটি যে পরিমাণ বৃদ্ধি বা হ্রাস করা উচিত তা নির্দিষ্ট করার জন্য একটি দ্বিতীয় আর্গুমেন্ট প্রদান করা যেতে পারে।
- No timestamp columns
যদি আপনার ডিবি টেবিলে (DB table) created_at এবং updated_at টাইমস্ট্যাম্প ফিল্ড না থাকে, তাহলে আপনি $timestamps=false প্রোপার্টি ব্যবহার করে উল্লেখ করতে পারেন যাতে ইলোকুয়েন্ট মডেলটি (Eloquent model) সেগুলো ব্যবহার না করে।
- Default Timestamp
মাইগ্রেশন তৈরি করার সময়, আপনি ->timestamp() কলাম টাইপটি ব্যবহার করতে পারেন ->useCurrent() অপশনের সাথে, এটি ডিফল্ট ভ্যালু হিসাবে CURRENT_TIMESTAMP কে সেট করবে ।
- Column name change
Eloquent Query Builder-তে, আপনি একটি সাধারণ SQL কোয়েরির মতো যেকোনো কলামকে ভিন্ন নামের সাথে রিটার্ন করতে "as" দিয়ে উল্লেখ করতে পারেন।
- More convenient DD
- Never run “composer update” in production
কখনই প্রোডাকশনে কম্পোজার আপডেট রান করবেন না, এটি স্লো এবং রিপোসিটোরিকে "ব্রেক" করবে। সর্বদা আপনার কম্পিউটারে লোকালি কম্পোজার আপডেট চালান, এবং রিপোসিটোরিতে একটি নতুন composer.lock কমিট করুন এবং সার্ভারে কম্পোজার ইনস্টল রান করুন৷
- Change Default Timestamp Fields
আপনি যদি একটি নন-লারাভেল ডাটাবেসের সাথে কাজ করেন এবং আপনার টাইমস্ট্যাম্প কলামগগুলো আলাদাভাবে নামকরণ করা হয় তাহলে কী হবে? হতে পারে, আপনার create_date এবং update_date আছে। সৌভাগ্যবশত, আপনি মডেলে তাদের নির্দিষ্ট করতে পারেন।
- Order by created_at
ডিফল্টভাবে, latest() মেথডটি create_at দ্বারা অর্ডার করবে। একটি বিপরীত মেথড আছে oldest() নামে যা create_at দিয়ে এসেন্ডিং অর্ডারে অর্ডার করবে।