টেবিল
টেবিল ব্যবহার করা এবং ওয়েব-অ্যাপ্লিকেশনে এর জন্য ডেটা পাওয়া
প্রথম রেকর্ড ডাটাবেসে হাজির! কিন্তু আমরা এটা দেখতে পাচ্ছি না, এবং এটা ঠিক করা দরকার। এটি করার জন্য, আপনার Table উপাদান প্রয়োজন (একটি টেবিল যা প্রয়োজনীয় ডেটা প্রদর্শন করবে)। অবিলম্বে যোগ করার পরে, এটি আপনাকে সিদ্ধান্ত নিতে বলবে যে এতে কোন ডেটা থাকবে এবং একটি মডেল এবং শেষ পয়েন্ট নির্বাচন করুন৷
টেবিল সেটিংস
তৈরি টেবিল অবিলম্বে আপনার প্রয়োজনীয়তা অনুযায়ী জারি করা উচিত. উদাহরণস্বরূপ, একটি পৃষ্ঠায় রেকর্ডের সংখ্যা সীমিত করুন (টেবিল খুব দীর্ঘ এবং বহু-পৃষ্ঠা হতে পারে), সেইসাথে কোন আগ্রহ নেই এমন ক্ষেত্রগুলি সরিয়ে দিন বা সম্পর্কিত টেবিল থেকে আউটপুটের জন্য পছন্দসই ক্ষেত্র সেট আপ করুন।
একই সময়ে, আমরা মনে করি যে কোনও উপাদানের যোগ করার অর্থ এখনও কাজের জন্য সম্পূর্ণ প্রস্তুতি নয়। আপনাকে উপযুক্ত ব্যবসায়িক প্রক্রিয়া তৈরি করতে হবে। টেবিলের জন্য, অনেক কিছু স্বয়ংক্রিয়ভাবে তৈরি হয়, তবে প্রশিক্ষণের অংশ হিসাবে, আমরা উপাদানটিকে আরও ভালভাবে আত্তীকরণ করতে স্ক্র্যাচ থেকে সবকিছু তৈরি করব।
টেবিল ট্রিগার
টেবিলে সর্বাধিক আগ্রহের তিনটি ট্রিগার রয়েছে - onDataUpdate , onShow এবং onFilter । আসুন onShow দিয়ে শুরু করি এবং টেবিলটি স্ক্রিনে দেখানো হলে কী ঘটবে তা নির্ধারণ করি। এর জন্য তিনটি ব্লকের প্রয়োজন হবে:
1) Table Update Properties টেবিলের পছন্দসই বৈশিষ্ট্য সেট করুন। উদাহরণস্বরূপ, এখানে আপনি একটি পৃষ্ঠায় রেকর্ডের সংখ্যা সীমিত করতে পারেন ( Records per page = 10 ) এবং এছাড়াও দেখান যে পৃষ্ঠাটি ডেটা লোডিং মোডে রয়েছে ( Loading = true )
2) Server request GET /country/ . ডেটা প্রদর্শিত হওয়ার জন্য, সেগুলিকে কোথাও নিয়ে যেতে হবে। এবং এটি করার জন্য, সংশ্লিষ্ট শেষ পয়েন্টের জন্য ডাটাবেসের কাছে একটি অনুরোধ করুন। একই সময়ে, এই শেষ পয়েন্টের ইনপুট পরামিতির সংখ্যার দিকে মনোযোগ দিন। তারা ক্যোয়ারীতে আরও নমনীয়তা প্রদান করে এবং শুধুমাত্র প্রয়োজনীয় ডেটা পায়।
আমাদের ক্ষেত্রে, আমরা _limit = 10 সেট করব কারণ প্রতি পৃষ্ঠায় এন্ট্রির সংখ্যা 10, এবং এর বেশি লোড করার কোন মানে নেই। উপরন্তু, আমরা সঠিক আউটপুট অর্ডার করব, নাম অনুসারে সবকিছু বাছাই করব ( _sort_by = name ), এবং সাজানোর ক্রমও সেট করব। _sort_order প্যারামিটার ASC মান নিতে পারে ( Ascending শব্দ থেকে, সরাসরি সাজানোর জন্য, ক্ষুদ্রতম মান থেকে বৃহত্তম পর্যন্ত) বা DESC ( Descending , বিপরীত ক্রম)। সরাসরি বর্ণানুক্রমিক সাজানো আমাদের জন্য ঠিক, তাই _sort_order = ASC ।
_with প্যারামিটার বিশেষ মনোযোগের দাবি রাখে। এটি ছাড়া ক্যোয়ারী চালানো, আমরা শুধুমাত্র দেশ সম্পর্কে ডেটা পেতে পারি। কিন্তু দেশের মডেল শহরগুলির সাথে সম্পর্কিত, এবং যদিও এই ডেটা অনুরোধ করা টেবিলের অন্তর্গত নয়, আমরা এখনও সেগুলি দেখতে চাই৷ এটি করার জন্য, _with = citys সেট করুন এবং অবিলম্বে এই দেশে কোন শহর রয়েছে সে সম্পর্কে ডেটা পান।
3) Table Update Data । ডেটা গৃহীত হয়, তবে এটি পর্দায় প্রদর্শিত হওয়ার জন্য একটি টেবিলে স্থানান্তর করা প্রয়োজন। এটি করার জন্য, আমরা পূর্ববর্তী ব্লকে প্রাপ্ত সমস্ত তথ্য ( data ) পাস করি, সেইসাথে রেকর্ডের মোট সংখ্যা ( count - Total Records ) , টেবিলে কতগুলি পৃষ্ঠা থাকা উচিত তা বোঝার জন্য।
পরবর্তী ট্রিগার হল onDataUpdate । বিভিন্ন ব্যবসায়িক প্রক্রিয়ার ফলে টেবিলের ডেটা আপডেট করা যেতে পারে। এবং যখন এটি ঘটে, তখন কী ঘটতে হবে তা একবার উল্লেখ করা এবং প্রতিটি ব্যবসায়িক প্রক্রিয়ায় একই ব্লক না রাখা ভাল। আমাদের ক্ষেত্রে, Table Update Properties ব্লকটি আবার ব্যবহার করা সঠিক হবে, কিন্তু এইবার লোডিং মোড ( Loading = false ) মুছে ফেলার জন্য, যা আগে সেট করা হয়েছিল এবং দেখান যে টেবিলটি কাজ করার জন্য প্রস্তুত।
আমাদের প্রয়োজন শেষ ট্রিগার onFilter . এটি টেবিলের অন্যান্য পৃষ্ঠায় স্থানান্তরের মুহুর্তে কী ঘটতে হবে তা নির্ধারণ করে। এটি করার জন্য, এতে _offset প্যারামিটার রয়েছে, যা পৃষ্ঠা নম্বর অনুসারে ডেটা লোড করার সময় কী অফসেট প্রয়োজন তা নির্দেশ করে।
উদাহরণস্বরূপ, যদি, আমাদের ক্ষেত্রে, প্রতিটি পৃষ্ঠায় 10টি এন্ট্রি থাকে, তাহলে তৃতীয় পৃষ্ঠায় 21 থেকে 30টি এন্ট্রির প্রয়োজন হবে৷ এই ডেটা _offset থেকে প্রাপ্ত হবে এবং Server request GET /country/ block-এ পাঠানো যেতে পারে৷ অন্যথায়, ব্যবসার প্রক্রিয়াটি সম্পূর্ণভাবে TableOnShow ট্রিগারের প্রক্রিয়ার সাথে মিলে যাবে। এই ধরনের পরিস্থিতিতে, দুটি ভিন্ন ট্রিগার একই ব্যবসায়িক প্রক্রিয়া চালু করা যুক্তিসঙ্গত হবে।
কিন্তু আমাদের ক্ষেত্রে, গুরুত্বপূর্ণ পার্থক্য _offset প্যারামিটারের মধ্যে রয়েছে। আপনি যদি নীচের স্ক্রিনশটের মতো সবকিছু ছেড়ে দেন, তাহলে onShow ট্রিগার অনুযায়ী প্রক্রিয়াটি শুরু হবে, কিন্তু এটি Server request GET /country/ block এ থামবে কারণ এটি _offset মান পেতে পারে না (এটি অন্য ট্রিগার থেকে পাস করা হয়)।
এই পরিস্থিতি ভেরিয়েবল ব্যবহার করে সবচেয়ে ভাল সমাধান করা হয়. এর একটি নির্দিষ্ট উদাহরণ তাকান. _offset মান সংরক্ষণ করার জন্য আমাদের Integer ধরনের একটি পরিবর্তনশীল প্রয়োজন। অতএব, আমরা এই ভেরিয়েবলটি ঘোষণা করতে একটি Integer ব্লক ব্যবহার করি, তবে এর মান লিখতে দুটি ভিন্ন Set Variable ব্লক, প্রতিটি একটি ভিন্ন ট্রিগারের সাথে যুক্ত।
Table onShow ট্রিগার অনুসারে, আমাদের কোন অফসেটের প্রয়োজন নেই, টেবিলের ডাটা প্রথম থেকেই দেখানো হয়েছে এবং _offset = 0 , তাই আমরা সেট Set Variable ব্লকে Value = 0 সেট করেছি।
যখন Table onFilter ট্রিগার চালু হয়, আমরা ইতিমধ্যেই _offset মান পেয়েছি এবং এটি ব্যবহার করতে চাই তাই আমরা _offset মানটিকে Set Variable ব্লকে Value হিসাবে পাস করব।
পরবর্তী ধাপে, ট্রিগারগুলির ব্যবসায়িক প্রক্রিয়াগুলি একে অপরের থেকে আলাদা হয় না, তাই দুটি ব্যবসায়িক প্রক্রিয়া একটিতে একত্রিত হয়, প্রতিটি _offset প্যারামিটারের জন্য পূর্ণসংখ্যা পরিবর্তনশীলের নিজস্ব মান সহ।