উত্তর:
unset()ফর্মগুলির জন্য ব্যবহার করা ভাল সমাধান নয় (যেমন আমি মনে করি আপনি জানেন), হ্যান্ডলারগুলি কীভাবে জমা দেওয়া / যাচাই করতে হবে তা আপনি কখনই জানেন না যে তারা যখন প্রক্রিয়াজাত হয় তখন আনসেট উপাদানটি উপস্থিত থাকতে পারে be এটি অযাচিত ত্রুটি বাড়ে।
ফর্ম উপাদানকে 'আড়াল' করতে আপনি নিরাপদে তিনটি পদ্ধতি ব্যবহার করতে পারেন
'#type' => 'value'উপাদানটিতে ব্যবহার করুন, যার ফলে এই প্রভাবটি পড়বে যে উপাদানটির মানটি এখনও তার যথারীতি #valueহিসাবে জমা / বৈধতা ফাংশনগুলিতে প্রেরণ করা হবে । এটি আমার পছন্দের পদ্ধতি।'#access' => FALSEএটি স্ক্রিনে আউটপুট করা উচিত নয় বোঝাতে উপাদানটিতে ব্যবহার করুন।'#type' => 'hidden'বার্ট হিসাবে প্রস্তাব করেছেন (যদিও এই ব্যবহারের আপনার ব্যবহার কেস উপর নির্ভর করে; আমি যদি আপনাকে যা করতে একটি ফর্ম উপাদান এর মান গোপন করবে না একটি লুকানো ইনপুট হিসাবে আকারে এটি আউটপুট করতে চান চেষ্টা করছেন কল্পনা)।hide()ফর্ম উপাদানগুলিতে ব্যবহার করা উচিত নয়, এটি সহজেই পুরো ফর্ম জমা দেওয়ার প্রক্রিয়াটিকে বিশৃঙ্খলা করতে পারে কারণ উপাদানগুলির বৈধতা এখনও চালানো হয়। উদাহরণস্বরূপ, আপনি যদি hide($form['title']);নোড ফর্মটিতে থাকেন তবে শিরোনাম ক্ষেত্রটি প্রয়োজনীয় হওয়ায় আপনি ফর্মটি জমা দিতে পারবেন না, তবে কোনও মান সরবরাহ করা হবে না। উপরের 3 টি পদ্ধতি ব্যবহার করার জন্য সর্বোত্তম পদ্ধতি:
drupal_render($form['base']['prices']['sell_price'])কাজ করছেন না?
drupal_render()কোনও ফর্ম ট্যাগ / টোকেন / ইত্যাদি পাবেন না। আপনি যদি পুরো $formঅ্যারে আউটপুট না করেন
আপনি যদি কোনও টেম্পলেট ফাইল ব্যবহার করেন তবে আপনি লুকান () ব্যবহার করে জিনিসগুলি আড়াল করতে পারেন ।
আপনি একটি ফর্ম উপাদান আড়াল করতে চান hook_form_alter, unset()আপনার সেরা বিকল্প হতে পারে।
যদি এটি কেবল কোনও মান সঞ্চয় করতে হয় তবে আপনি '# টাইপ' => 'লুকানো'ও ব্যবহার করতে পারেন ।
drupal_render($form['base']['prices']['sell_price'])হবে তবে ফর্মটি প্রদর্শিত হবে, তবে এটি সংরক্ষণ করছে না!