I've been struggling with this for a few days now, so I hope somebody can help.

I have a OneToMany relation between a table Resources and my FOSUserBundle provided User entity, so that one user can have posted many resources.

**Note: the entities have been edited for brevity, however I don't believe I removed anything important for this question**

My Resources entity:

```
<?php

namespace SFI\MainBundle\Entity;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="SFI\MainBundle\Entity\ResourcesRepository")
 * @ORM\Table(name="resources")
 */

class Resources {
/**
 * @ORM\Column(name="id", type="integer", nullable=false)
 * @ORM\Id()
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */

protected $id;

/**
 * @ORM\Column(type="string", length=255)
 */

protected $name;

/**
 * @ORM\Column(type="string", length=255)
 */

protected $type;

/**
 * @ORM\Column(type="string", length=255)
 */

protected $link;

/**
 * @ORM\Column(type="text")
 */

protected $description;

/**
 * @ORM\Column(type="datetime")
 */

protected $created_time;

/**
 * @ORM\ManyToOne(targetEntity="SFI\UserBundle\Entity\User", inversedBy="created_by")
 * @ORM\JoinColumn(name="created_by", referencedColumnName="id")
 */
protected $created_by;

---rest of getters and setters---

    /**
     * Set created_by
     *
     * @param \SFI\UserBundle\Entity\User $createdBy
     * @return Resources
     */
    public function setCreatedBy(\SFI\UserBundle\Entity\User $createdBy = null)
    {
        $this->created_by = $createdBy;

        return $this;
    }

    /**
     * Get created_by
     *
     * @return \SFI\UserBundle\Entity\User 
     */
    public function getCreatedBy()
    {
        return $this->created_by;
    }
}

```

My User entity:

```
<?php

namespace SFI\UserBundle\Entity;

use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @ORM\Entity(repositoryClass="SFI\UserBundle\Entity\UserRepository")
 * @ORM\Table(name="fos_user")
 */
class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    public function __construct()
    {
        parent::__construct();
    }

    /**
     * @ORM\Column(type="string", length=255)
     *
     * @Assert\NotBlank(message="Please enter your name.", groups={"Registration", "Profile"})
     * @Assert\Length(
     *     min=3,
     *     max="255",
     *     minMessage="The name is too short.",
     *     maxMessage="The name is too long.",
     *     groups={"Registration", "Profile"}
     * )
     */
    protected $name;

    /**
     * Get id
     *
     * @return integer
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set name
     *
     * @param string $name
     * @return User
     */
    public function setName($name)
    {
        $this->name = $name;

        return $this;
    }

    /**
     * Get name
     *
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * @ORM\OneToMany(targetEntity="SFI\MainBundle\Entity\Resources", mappedBy="created_by")
     */
    protected $created_by;

    /**
     * Add created_by
     *
     * @param \SFI\MainBundle\Entity\Resources $createdBy
     * @return User
     */
    public function addCreatedBy(\SFI\MainBundle\Entity\Resources $createdBy)
    {
        $this->created_by[] = $createdBy;

        return $this;
    }

    /**
     * Remove created_by
     *
     * @param \SFI\MainBundle\Entity\Resources $createdBy
     */
    public function removeCreatedBy(\SFI\MainBundle\Entity\Resources $createdBy)
    {
        $this->created_by->removeElement($createdBy);
    }

    /**
     * Get created_by
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getCreatedBy()
    {
        return $this->created_by;
    }
}

```

I have a couple of Form Types but the main one I'm working with is ResourceType:

```
<?php
namespace SFI\MainBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class ResourceType extends AbstractType
{

  public function buildForm(FormBuilderInterface $builder, array $options)
  {

    //Setting date and time
    $created_at = new \DateTime('now');

    $builder
      ->add('name', 'text', array(
        'required' => true,
        'attr' => array(
          'class' => 'form-control',
          'placeholder' => 'Resource name',
        ),
      ))
      ->add('type', 'choice', array(
        'required' => true,
        'empty_value' => 'Choose a type',
        'choices' => array('w' => 'Website', 'v' => 'Video', 'a' => 'Audio'),
        'attr' => array(
          'class' => 'form-control',
        ),
      ))
      ->add('link', 'text', array(
        'required' => true,
        'attr' => array(
          'class' => 'form-control',
          'placeholder' => 'Add a link',
        ),
      ))
      ->add('description', 'textarea', array(
        'required' => true,
        'attr' => array(
          'class' => 'textarea',
          'style' => 'width: 100%; height: 200px; font-size: 14px; line-height: 18px; border: 1px solid #dddddd; padding: 10px;',
          'placeholder' => 'Write a description...',
        ),
      ))
      ->add('created_time', 'datetime', array(
        'disabled' => true,
        'data' => $created_at,
      ))
      ->add('save', 'submit', array(
        'attr' => array('class' => 'btn btn-primary'),
      ));
  }

  public function getName()
  {
    return 'resource';
  }

  public function setDefaultOptions(OptionsResolverInterface $resolver)
  {
    $resolver->setDefaults(array(
      'data_class' => 'SFI\MainBundle\Entity\Resources',
    ));
  }
}

```

My controller for the Resource form part:

```
public function resourcesAction(Request $request)
  {

      $breadcrumbs = $this->get("white_october_breadcrumbs");
      $breadcrumbs->addItem("SFI Portalen", $this->get("router")->generate("sfi_static_index"));
      $breadcrumbs->addItem("Teacher Dashboard", $this->get("router")->generate("sfi_teacher_dashboard"));
      $breadcrumbs->addItem("Resources");

      $em = $this->getDoctrine()->getManager();

      $resource = new Resources();

      $newResourceForm = $this->createForm(new ResourceType(), $resource);
      $newResourceForm->handleRequest($request);

      if ($newResourceForm->isValid()) {

        $session = $this->getRequest()->getSession();
        //$session->getFlashBag()->add('notice', 'Form processed');
        $session->getFlashBag()->add('notice', 'Form processed, testing, no persist');

        //$em->persist($resource);
        //$em->flush();

        return $this->redirect($this->generateUrl('sfi_teacher_resources'));
      }

      return $this->render('SFIMainBundle:Teacher:resources.html.twig', array(
        'form' => $newResourceForm->createView(),
      ));
  }

```

What I need to do is relate these entities when a new Resource is created, to "assign" it to the logged in user via the relation in the tables.

I've looked into embedded forms and other suggestions on Symfony's documentation, but I can't wrap my head around how to apply what I read to this specific example. I have followed the example with the tasks and the tags and the categories and all that, but I can't understand how it applies to my situation, having the User entity in another bundle, and a User form type that relates the user to their school and just adds an extra full name field, while inheriting FOSUserBundle's original form type.

I also have a funny feeling that I haven't tackled or "layed out" the relationship correctly in my code so as to make it easier to understand which objects relate.

Any help would be much appreciated! Also please let me know if you require other code or further information.