ম্যাজেন্টো 2 গেটেবল আচরণ


13

টিএল; ডিআর:getTable 2 আলাদা প্যারামিটারের জন্য একই টেবিলের নামটি ফেরত দেওয়ার জন্য কোনও উত্স সংগ্রহের মডেল থেকে পদ্ধতি তৈরি করার জন্য কি ম্যাজেন্টো 2 তে কোনও উপায় আছে ?

বিস্তারিত ব্যাখ্যা
আমি ম্যাজেন্টো 1 থেকে একটি উদাহরণ দিয়ে শুরু করব
Let's বলুন যে আমার কাছে একটি টেবিল কল আছে module_entiti1_entity2
আমার এই টেবিলটি আমার config.xmlমতো প্রকাশ করা দরকার

<module_resource>
    <class>....</class>
    <entities>
         <entity1_entity2>
             <table>module_entiti1_entity2</table>
         </entity1_entity2>
    </entities>
</module_resource>

তারপরে আমি এই জাতীয় উদাহরণ হিসাবে কোনও সংস্থান সংগ্রহের মডেল থেকে টেবিলের নামটি পেতে পারি:

$collection->getTable('module/entity1_entity2');

তবে আমি চাইলে আমি একই টেবিলের জন্য একাধিক উপকরণ ব্যবহার করতে পারি।
যদি আমার config.xmlবিভাগ হয়ে যায়

<module_resource>
    <class>....</class>
    <entities>
         <entity1_entity2>
             <table>module_entiti1_entity2</table>
         </entity1_entity2>
         <entity2_entity1>
             <table>module_entiti1_entity2</table>
         </entity2_entity1>
    </entities>
</module_resource>

আমি আমার টেবিলটি 2 উপায়ে পুনরুদ্ধার করতে পারি:

$collection->getTable('module/entity1_entity2');
$collection->getTable('module/entity2_entity1');

ম্যাজেন্টো 2 তে উপরের মতো কোনও টেবিল ঘোষণা নেই।
আমি আমার টেবিলের নামটি এভাবে পেতে পারি $collection->getTable('module_entity1_entity2')
প্যারামিটারের module_entity2_entity1জন্য প্যারামিটারের মতো একই টেবিলের নামটি ফেরত দেওয়ার জন্য কি ম্যাজেন্টোকে বলার কোনও উপায় আছে module_entity1_entity2?

উত্তর:


3

আপনি যা খুঁজছেন তা হ'ল setMappedTableName। আপনার রিসোর্স মডেলের ভিতরে এটি কল করুন:

$this->_resources->setMappedTableName('module_entity1_entity1', 'module_entity1_entity2');

আপনি এটি কোনও ফাংশনের ভিতরে রাখতে পারেন তারপরে getTableপদ্ধতিটি কল করার আগে এটিকে কল করুন ।

মূলত, এটি বলে যে যখনই আমি চাইব module_entity1_entity1, আমাকে module_entity1_entity2টেবিলটি দিন।


পরামর্শের জন্য ধন্যবাদ, আমি এটি চেষ্টা করব এবং ফলাফলগুলি নিয়ে ফিরে আসব। আপনার সুপারিশ অনুসারে, আমি setMappedTableNameযদি আমার সংস্থান মডেল নির্মাণকারীর মধ্যে এটি ব্যবহার করি তবে এটি ঠিক কাজ করা উচিত? ক্লাস থেকে অন্য কোনও পদ্ধতির আগে সেটিকে ডাকা হয়।
মারিয়াস

সত্য, আমি মনে করি এটিই আপনি সবচেয়ে ভাল জায়গা রাখতে পারেন যাতে এটি স্থায়ীভাবে ম্যাপ করা যায়। আপনি না চাইলে কেবল নির্দিষ্ট ক্ষেত্রে এটি কাজ করে।
ভার্নার্ড লুজ

আরে। এটা কাজ করে। আমি যদি এটির মাধ্যমে এটি করতে পারি তবে ভাল হবে di.xml। যদি এটি সম্ভব না হয় তবে আমি আমার নিজস্ব প্রক্রিয়াটি বাস্তবায়ন করব। তবে এটাই আমার শুরু করার দরকার ছিল। ধন্যবাদ.
মারিয়াস

আপনাকে স্বাগতম, আমি একজন ভক্ত বিটিডাব্লু। আপনাকে সাহায্য করতে পেরে আমার আনন্দ pleasure
ভার্নার্ড লুজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.