Drupal এর 8-এ টেবিল রেন্ডারিং এখনও পিএইচপি আউট সারি এবং কলামের বহু মাত্রিক অ্যারে Drupal এর 7. আপনি নির্মাণ মত অনেক করে একটি মধ্যে Drupal এর বদলে দেয় হয় <tr>এবং <td>যথাক্রমে s। এখনও এই বিভ্রান্তিকর Drupalism হিসাবে পরিচিত 'data'যা আপনাকে সেল ডেটা হিসাবে অ্যারে উপাদানগুলি রেন্ডার করতে দেয় (ডেটা অ্যাট্রিবিউটগুলির সাথে বিভ্রান্ত না হয়)।
আমাকে এমন একটি সাইট দেওয়া হয়েছে যেখানে বিকাশকারী ঘরের বিষয়বস্তু রেন্ডার করতে 'ডেটা' ব্যবহার করতে পছন্দ করেছেন, তবে কীভাবে <td>ডেটা চারপাশে কোনও শ্রেণি যুক্ত করবেন তা আমি বুঝতে পারি না ।
আমি টেবিল.এফপি এর জন্য সোর্স কোড এবং ডকুমেন্টেশন পড়েছি এবং আমি নতুন সম্পর্কে সচেতন #wrapper_attributes কিন্তু আমি এটি ক্র্যাক করতে পারি না।
আমি ক্লাস যুক্ত করার জন্য কমপক্ষে চারটি উপায় চেষ্টা করেছি, এবং কোনওটিই কাজ করে না।
$table['row-' . $row_id] = [
// Option 1: Class appears on <tr> tag
'#attributes' => [
'class' => ['option-1-row-attributes'],
'id' => 'row-' . $row_id,
'no_striping' => TRUE,
],
// Option 2: Class appears on <td> tag of first column.
'item' => [
'#markup' => $row['my_item']->label(),
'#wrapper_attributes' => [
'class' => ['option-2-markup-wrapper-attributes'],
],
],
// In the following section, the only item that works is
// the class on the <a> tag.
'edit_operation' => [
'data' => [
'#type' => 'link',
'#url' => Url::fromRoute('my_module.my_route', ['item' => $row_id]),
'#title' => $this->t('Edit'),
'#attributes' => [
// Option 3: Class appears on the anchor tag
'class' => ['use-ajax', 'option-3-link-attributes'],
'data-dialog-type' => 'modal',
'data-dialog-options' => Json::encode([
'width' => 700,
]),
],
// Option 4: Has no effect.
'#wrapper_attributes' => [
'class' => ['option-4-data-wrapper-attributes'],
],
],
// Option 5: Update: This appears to be the correct solution!
// Class appears on the <td>.
'#wrapper_attributes' => [
'class' => ['option-5-wrapper-attributes'],
],
// Option 6: Has no effect.
'#attributes' => [
'class' => ['option-6-attributes'],
],
// Option 7: Has no effect.
'class' => ['option-7-attributes'],
],
];