Skip to main content

Debug print drupal 8 variables

Use Devel and kint ,
and search Kint

NOTE: Please make sure devel profile must be kint
ksm($form);  // print the form with search option in kint

1 - $form_state->getValues(); // Shows all the form field value
2 - $form_state->getUserInput(); //to get the user input including buttons clicked


+++++++++++++++++++++++
dump(_context|keys) }} // in twig file

  • Compare string in Twig file 
{% set form_id = form.custom_data.form_id %}
{% if form_id == "node_story_edit_form" %} 
Yes i am here 
{% endif %}

   2 - get the # valued of form in twig templates, :
All the array and object value can get by  dot(.) operation while # value get by direct array like  below,

if($form['#form_id'] == 'node_video_form' || $form['#form_id'] == 'node_video_edit_form'){
   
   $form['#custom_data'] = array('custom_form_id' => $form['#form_id']);

   ksm($form);
}

in twig file :
{{ kint(form['#custom_data'].custom_form_id) }}


How to get the value (or use the function )within the class : 

I am printing the ksm($form['actions']['delete']['#url']->getOptions()['entity']); in form alter module,
and get the output as below , 

Motive it , how to get the values of node field like, vid,languagecode
if we got anywhere the namespace or class name , then we can call the function directly after it
here, Drupal\node\entity\Node  All the function will work like a charm,
So I am using the $node->toArray(),

   ksm($form['actions']['delete']['#url']->getOptions()['entity']->toArray());

Now i got the Array value of all the fields,



Get Current Date With Format Drupal-8:

$current_timestamp = \Drupal::time()->getCurrentTime();
  $format_date = \Drupal::service('date.formatter')->format($current_timestamp, 'custom', 'Y-m-d H:i:s', '','');

Comments

Popular posts from this blog

Get The field values of node in Drupal 8

use Drupal \ node \ NodeInterface ; /** * Implements hook_ENTITY_TYPE_insert() for node entities. * * This tests saving a node on node insert. * * @see \Drupal\node\Tests\NodeSaveTest::testNodeSaveOnInsert() */ function node_test_node_insert ( NodeInterface $node ) { // Set the node title to the node ID and save. if ( $node - > getTitle ( ) == 'new' ) { $node - > setTitle ( 'Node ' . $node - > id ( ) ) ; $node - > setNewRevision ( FALSE ) ; $node - > save ( ) ; } } Now There is so many functions are there to get the values, For All the functions available visit the API code, https://api.drupal.org/api/drupal/core%21modules%21node%21src%21NodeInterface.php/interface/NodeInterface/8.2.x Some of as below, Node edit form, Drupal 8 Automatically Load the whole object no need to load the entity like below, if ($event->getFormId() == 'node_alexa_audio_clips_edit_form') { $node = \Drupal::ro...

Drupal 8 : Link actions,Link menus,Link Tasks,Routings

Drupal 8 : Link actions,Link menus,Link Tasks,Routings Link actions Local actions have also been moved out of the hook_menu() system in Drupal 8 .Use actions to define local operations such as adding new items to an administrative list (menus, contact categories, etc). Local actions are defined in a YAML format, named after the module they are defined by. Such as menu_ui.links.action.yml for this example from menu_ui module: menu_ui.link_add:   route_name: menu_ui.link_add   title: 'Add link'   appears_on:     - menu_ui.menu_edit Here, menu_ui.link_add: It is the Unique name of the link action Most likely start with module name, route_name : Name of the route it means when click the link it redirect to this route, appears_on :  An array of route names for this action to be display on. Now how to know the Route name of any internal/external admin pages like below, By through the drupal console we achieve it, drupal debug:router...