এনটাইটেল্টি_মেডাটাটা_আপনার মাধ্যমে একটি তারিখ ক্ষেত্র সেট করা হচ্ছে


8

আমি dateব্যবহারের মাধ্যমে প্রকারের ক্ষেত্রটি সেট করার চেষ্টা করছি entity_metadata_wrapperতবে যদিও ক্ষেত্রটি মাইএসকিএল-তে ডেটটাইম হিসাবে তৈরি হয়েছে এবং একটি নোড তৈরি করে এটি প্রত্যাশিত ওয়াইওয়াই-এমএম-ডিডি এইচ: এমএম: এসএস বিন্যাসের সাথে সেট করে, যখন entity_metadata_wrapperএটি ব্যবহার ব্যর্থ হয়। আমি যে জিনিসটি কেবল managedোকাতে পরিচালিত করেছি তা হ'ল টাইমস্ট্যাম্পগুলি, আমি আইএসও তারিখের বিন্যাস এবং মানক উভয়ই চেষ্টা করেছি।

আপডেট করার জন্য আমি যে লাইনটি ব্যবহার করার চেষ্টা করছি তা এখানে:

   // sets reminder date in db
   $wrapper->field_event_reminder_date->set($reminder_date->format("Y-m-d H:i:s"));

ধন্যবাদ!

উত্তর:


5

আমি জানি এই প্রশ্নটি কিছু সময় আগে জিজ্ঞাসা করা হয়েছিল, তবে যারা এই প্রশ্নটি জুড়ে আসেন তাদের উত্তরটি http://drupal.org/node/1803286 এ দেওয়া হবে বলে মনে হয় । সত্তা এপিআইতে তারিখের ক্ষেত্রগুলির জন্য কোনও সেটার কলব্যাক নেই, সুতরাং আপনি অ্যান্টি_মেডাটাটা_আপনার ব্যবহার করে তারিখের মান নির্ধারণ করতে পারবেন না। এই উত্তরে উল্লিখিত ডো নোড একটি কার্যপ্রণালী দেয়।


চমৎকার ধরা! -> পরের বারের জন্য বুকমার্ক করা আমাকে তারিখের ক্ষেত্রের সাথে খেলতে হবে। ধন্যবাদ বন্ধু.
স্টেফগোসেলিন

8

আমি এটিকে চারদিকে ঘুরতে কাজ করতে সক্ষম হয়েছি। আমি একই জিনিসটি সম্পাদন করতে সক্ষম হতে পারি time()তবে এটি আমার জন্য আরও ভালভাবে পড়তে পারে কারণ ভবিষ্যতে আমি যদি আবার কোডে ফিরে আসি তবে আমি ঠিক কী করছিলাম তা অনুসরণ করতে পারি।

// Update the Acceptance Date of Current Agreement.
$acceptance_date = new DateTime(date('Y-m-d 00:00:00'));
$company_wrapper->field_acceptance_date->set($acceptance_date->getTimestamp());

5

যদি ক্ষেত্রটি শেষের তারিখ সংগ্রহ করে না তবে এটি টাইমস্ট্যাম্প সহ সেট করে:

$entity_wrapper->field_date = 1431670535;

যদি এটি করে:

$entity_wrapper->field_date = array(
  'value' => '2015-05-12 11:30:38',
  'value2' => '2015-05-25 21:45:33',
);

শেষের তারিখ ছাড়া তারিখগুলি কীভাবে সেট করা যায় তা দেখানোর জন্য এটি সবচেয়ে দরকারী useful
রিডবার্ট

3

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

অবশেষে এটি সত্তা মেটাডেটা মোড়ক ব্যবহার করে কাজ করেছে এবং কেবলমাত্র -> সেট (সময় ()) ব্যবহার করা দরকার। নীচের কোডটিতে একটি চেকবাক্স "বুলিয়ান" ক্ষেত্র, একটি পণ্য রেফারেন্স ক্ষেত্র এবং তারিখের ক্ষেত্রটি সেট করা দেখায়।

$wrapper = entity_metadata_wrapper('user', $account);
$wrapper->field_subscription_active = 1;
$wrapper->field_subscriptionplan->set($line_item->commerce_product[LANGUAGE_NONE][0]['product_id']);
$wrapper->field_subscription_signup_date->set(time());
$wrapper->save();

2

এটি প্রদর্শিত হয় যে কীভাবে মান সেট করা হয় তা কোন ধরণের তারিখের ক্ষেত্রের উপর নির্ভর করে। Dateক্ষেত্রের ধরণটি শুরু করার এবং শেষের তারিখটি ব্যবহার করার সময় এটি আমার পক্ষে কাজ করেছিল।

$product->field_course_event_date->set(array(
  'value' => "2013-12-09 00:00:00",
  'value2' => "2013-12-10 00:00:00",
));

একটি ভিন্ন উদাহরণ ব্যবহার করে, এটি আমার জন্য Dateক্ষেত্র, সীমাহীন মান, কেবলমাত্র শুরুর সময় নিয়ে কাজ করেছিল:

$invitation->field_dates = array(1431670535);

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