I am new to drupal 8. I want to load default values in my form. I am fetching the node of the table row from form list and passing it into route my_form_eform: path: '/edit/{bar}' options: parameters: bar: type: entity:node defaults: _form: '\Drupal\my_form\Form\EditForm' _title: 'Edit Item' requirements: _permission: 'access content' and code for editform.php is namespace Drupal\my_form\Form; use Drupal\Core\Session\AccountInterface; use Symfony\Component\HttpFoundation\Request; use Drupal\Core\Form\FormBase; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Form\NodeInterface; class EditForm extends FormBase{ // public function content(AccountInterface $index, Request $request) { public function getFormId() { return 'edit_form'; } public function buildForm(array $form, FormStateInterface $form_state , NodeInterface $bar = NULL){ // $id = $bar; // $result = db_select('my_form','t') // ->fields('t',array('id','title','author','stream','description','price')) // ->condition('id',$id) // ->execute()->fetchAssoc(); // $dtitle = $result['title']; // $dauthor = $result['author']; // $ddesc = $result['description']; // $dstream = $result['stream']; // $dprice = $result['price']; $form = array(); $form['title'] = [ '#type' => 'textfield', '#title' => t('Title of your book.'), '#default_value'=> $dtitle ]; $form['author'] = [ '#type' => 'textfield', '#title' => $this->t('Author.'), '#default_value'=> $dauthor ]; $form['stream'] = [ '#type' => 'select', '#title' => t('Stream'), '#options' => array( 'ECE' => t('ECE'), 'CSE' => t('CSE'), 'ME'=> t('ME'), ), '#default_value'=> $dstream ]; $form['desc'] = [ '#type' => 'textfield', '#title' => t('Description'), '#default_value'=> $ddesc ]; $form['Price'] = [ '#type' => 'textfield', '#title' => t('Price'), '#default_value'=> $dprice, ]; $form['ADD'] = [ '#type' => 'submit', '#value' => $this->t('Update'), ]; return $form; } I read about parameter upcasting, but its not required for node instance. If I am passing the id in function itself through account interface it's giving the error >must be compatible with formbuilder class Now I am using NodeInterface argument but its also giving the error > Argument 3 passed to Drupal\my_form\Form\EditForm::buildForm() must be an instance of Drupal\Core\Form\NodeInterface Please help. How can I load my id so that default values for form fields can be fetched from db.