İçeriğe atla

Symfony 3 Giriş Seviyesi Notları

Bundle Oluştuktan sonra
enttiy oluştur

php bin/console doctrine:generate:entity

WebMuhasebeBundle:Fatura

Sonrasında ilişki kurulacak.

İlişkilerde

 /**
 * @ORM\OneToMany(targetEntity="Ilce", mappedBy="Il", cascade={"persist", "remove"})
 */
 private $Ilce;

id göndermek için kullanıyoruz. Kendi id sini karşıya entitye gönderiyor.


/**
 * @ORM\ManyToOne(targetEntity="Il", inversedBy="Ilce")
 * @ORM\JoinColumn(name="il_id", referencedColumnName="id")
 */
 public $il;

Buradaki karşıdan gelen id kayıt ediyor. (ilden gelen id yi kayıt ediyor)

1 ilin birden fazlası ilçesi olabilir ama bir ilçenin ilçesi olamaz.
İl burada one kısmı ilçe many olur.
işlemler bittikten sonra

php bin/console doctrine:generate:entities WebMuhasebeBundle
php bin/console doctrine:schema:update --force

sonrasında sayfalandırmak için kullanmak için aşagıdaki kodu yazıyoruz

 

composer require knplabs/knp-paginator-bundle

şeklinde kurunuz

github linki : https://github.com/KnpLabs/KnpPaginatorBundle

Config.yml içerisinde aşagıdaki kodu ekleyiniz:

knp_paginator:
 page_range: 5 # default page range used in pagination control
 default_options:
 page_name: page # page query parameter name
 sort_field_name: sort # sort field query parameter name
 sort_direction_name: direction # sort direction query parameter name
 distinct: true # ensure distinct results, useful when ORM queries are using GROUP BY statements
 template:
 pagination: KnpPaginatorBundle:Pagination:sliding.html.twig # sliding pagination controls template
 sortable: KnpPaginatorBundle:Pagination:sortable_link.html.twig # sort link template

sonrasında user için

composer require friendsofsymfony/user-bundle "~2.0@dev"

şeklinde kurulum yapınız.

Ekle:

<?php
// app/AppKernel.php

public function registerBundles()
{
$bundles = array(
// ...
new FOS\UserBundle\FOSUserBundle(),
// ...
);
}

Kendi bundlunuze seçip user.php oluşturup

use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
* @ORM\Entity
* @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();
// your own logic
}
}

içine ekleyin

devamını
http://symfony.com/doc/current/bundles/FOSUserBundle/index.html

adresinden bakabilirsiniz.

a) Doctrine ORM User class

bölümünde

// src/AppBundle/Entity/User.php

kısmında oluşturmuş oldugunuz bundle göre vermeniz gerekmektedir.

İşlemleri bitirdikten sonra crud işlemini yapınız.

Crud Dökümanı
http://symfony.com/doc/current/bundles/SensioGeneratorBundle/commands/generate_doctrine_crud.html

php app/console generate:doctrine:crud

Crud oluşturabilirsiniz.
Oluşturalacak bütün entityler için tek tek yazmanız gerekiyor.

yml yapıyoruz
isim girerkende Örnek WebMuhasebeBundle:fatura