Ostatnie wiadomości

Strony: [1] 2 3 ... 10
1
Pomoc / Odp: Problem z Many to Many
« Ostatnia wiadomość wysłana przez Valantir dnia Kwietnia 28, 2019, 18:32:44 »
Co masz na myśli pisząc, że nie możesz "odfiltrować odczytu dla danego typu"? Jakiś kontroler, formularz Ci sprawia problem? Więcej szczegółów poprosimy :)
2
Pomoc / Problem z Many to Many
« Ostatnia wiadomość wysłana przez czerep dnia Kwietnia 24, 2019, 21:56:51 »
Witam, mam takie dość skomplikowane zadanie do zrobienie z relacjami, a mianowicie mam przykładową encję książki, do tej encji książki mam dodatki oraz typy dodatków. Wygląda to mnie więcej tak w bazie danych.
==ksiazki==
id
tytuł

==ksiazki_dodatki== (tabela relacji Many to Many)
ksiazka_id
dodatek_id

==dodatki==
id
nazwa
typ_id - (relacja One to Many do typ_dodatku)

==typ_dodatku==
id
nazwa

Niestety o ile wcześniej miałem zrobione że typ dodatku był jako SimpleArray w bazie dodatki i działało mi to dobrze o tyle teraz niestety nie mogę dojść jak to zrobić. Dodam że każdy typ ma swoje odwzorowanie w encji czyli zmienna i do tego podpiętą relację many to many, o ile zapis działa o tyle nie jestem w stanie w tej chwili odfiltrować odczytu dla danego typu.
3
Pomoc / Odp: Początkowy projekt
« Ostatnia wiadomość wysłana przez Valantir dnia Marca 14, 2019, 19:37:02 »
Może głupie pytanie ale masz na początku pliku:

<?php
4
Pomoc / Odp: Początkowy projekt
« Ostatnia wiadomość wysłana przez Marcin1 dnia Marca 13, 2019, 00:03:22 »
{
    "type": "project",
    "license": "proprietary",
    "require": {
        "php": "^7.1.3",
        "ext-ctype": "*",
        "ext-iconv": "*",
        "sensio/framework-extra-bundle": "^5.1",
        "symfony/asset": "4.2.*",
        "symfony/console": "4.2.*",
        "symfony/dotenv": "4.2.*",
        "symfony/expression-language": "4.2.*",
        "symfony/flex": "^1.1",
        "symfony/form": "4.2.*",
        "symfony/framework-bundle": "4.2.*",
        "symfony/monolog-bundle": "^3.1",
        "symfony/orm-pack": "*",
        "symfony/process": "4.2.*",
        "symfony/security-bundle": "4.2.*",
        "symfony/serializer-pack": "*",
        "symfony/swiftmailer-bundle": "^3.1",
        "symfony/translation": "4.2.*",
        "symfony/twig-bundle": "4.2.*",
        "symfony/validator": "4.2.*",
        "symfony/web-link": "4.2.*",
        "symfony/yaml": "4.2.*"
    },
    "require-dev": {
        "symfony/debug-pack": "*",
        "symfony/maker-bundle": "^1.0",
        "symfony/profiler-pack": "*",
        "symfony/test-pack": "*",
        "symfony/web-server-bundle": "4.2.*"
    },
    "config": {
        "preferred-install": {
            "*": "dist"
        },
        "sort-packages": true
    },
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "App\\Tests\\": "tests/"
        }
    },
    "replace": {
        "paragonie/random_compat": "2.*",
        "symfony/polyfill-ctype": "*",
        "symfony/polyfill-iconv": "*",
        "symfony/polyfill-php71": "*",
        "symfony/polyfill-php70": "*",
        "symfony/polyfill-php56": "*"
    },
    "scripts": {
        "auto-scripts": {
            "cache:clear": "symfony-cmd",
            "assets:install %PUBLIC_DIR%": "symfony-cmd"
        },
        "post-install-cmd": [
            "@auto-scripts"
        ],
        "post-update-cmd": [
            "@auto-scripts"
        ]
    },
    "conflict": {
        "symfony/symfony": "*"
    },
    "extra": {
        "symfony": {
            "allow-contrib": false,
            "require": "4.2.*"
        }
    }
}

Masz jakiś pomysł?
5
Pomoc / Odp: Początkowy projekt
« Ostatnia wiadomość wysłana przez Valantir dnia Marca 12, 2019, 17:16:41 »
Podaj proszę zawartość pliku composer.json
6
Pomoc / Początkowy projekt
« Ostatnia wiadomość wysłana przez Marcin1 dnia Marca 12, 2019, 11:42:01 »
Cześć zaczynam projekt według tego na stronie Symfony. Startowy projekt


config/routes.yaml                               Później routes będę podawał przy akcjach
app_lucky_number:
    path: /lucky/number
    controller: App\Controller\LuckyController::number

src/Controller/LuckyController.php
namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;

class LuckyController
{
public function number()
{
$number1 = 5;

return new Response(
'<html><body>Numer: '.$number1.'</body></html>'
);
}
}

localhost:8000/lucky/number

 (2/2) LoaderLoadException

The autoloader expected class "App\Controller\LuckyController" to be defined in file "/home/pc/projekt/vendor/composer/../../src/Controller/LuckyController.php". The file was found but the class was not in it, the class name or namespace probably has a typo in /home/pc/projekt/config/services.yaml (which is loaded in resource "/home/pc/projekt/config/services.yaml").
in FileLoader.php line 166
at FileLoader->doImport('/home/pc/projekt/config/services.yaml', null, false, null)in FileLoader.php line 90
at FileLoader->import('/home/pc/projekt/config/services.yaml')in GlobFileLoader.php line 27
at GlobFileLoader->load('/home/pc/projekt/config/{services}.{php,xml,yaml,yml}', 'glob')in DelegatingLoader.php line 40
at DelegatingLoader->load('/home/pc/projekt/config/{services}.{php,xml,yaml,yml}', 'glob')in Kernel.php line 36
at Kernel->configureContainer(object(ContainerBuilder), object(DelegatingLoader))in MicroKernelTrait.php line 80
at Kernel->Symfony\Bundle\FrameworkBundle\Kernel\{closure}(object(ContainerBuilder))in ClosureLoader.php line 38
at ClosureLoader->load(object(Closure), null)in DelegatingLoader.php line 40
at DelegatingLoader->load(object(Closure))in MicroKernelTrait.php line 83
at Kernel->registerContainerConfiguration(object(DelegatingLoader))in Kernel.php line 653
at Kernel->buildContainer()in Kernel.php line 543
at Kernel->initializeContainer()in Kernel.php line 133
at Kernel->boot()in Kernel.php line 193
at Kernel->handle(object(Request))in index.php line 25
(1/2) RuntimeException

The autoloader expected class "App\Controller\LuckyController" to be defined in file "/home/pc/projekt/vendor/composer/../../src/Controller/LuckyController.php". The file was found but the class was not in it, the class name or namespace probably has a typo.
in DebugClassLoader.php line 212
at DebugClassLoader->checkClass('App\\Controller\\LuckyController', '/home/pc/projekt/vendor/composer/../../src/Controller/LuckyController.php')in DebugClassLoader.php line 169
at DebugClassLoader->loadClass('App\\Controller\\LuckyController')
at spl_autoload_call('App\\Controller\\LuckyController')
at class_exists('App\\Controller\\LuckyController')in ClassExistenceResource.php line 76
at ClassExistenceResource->isFresh(0)in ContainerBuilder.php line 351
at ContainerBuilder->getReflectionClass('App\\Controller\\LuckyController')in FileLoader.php line 149
at FileLoader->findClasses('App\\', '../src/*', array('../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'))in FileLoader.php line 57
at FileLoader->registerClasses(object(Definition), 'App\\', '../src/*', '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}')in YamlFileLoader.php line 554
at YamlFileLoader->parseDefinition('App\\', array('resource' => '../src/*', 'exclude' => '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'), '/home/pc/projekt/config/services.yaml', array('autowire' => true, 'autoconfigure' => true))in YamlFileLoader.php line 229
at YamlFileLoader->parseDefinitions(array('parameters' => array('locale' => 'en'), 'services' => array('App\' => array('resource' => '../src/*', 'exclude' => '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'), 'App\Controller\' => array('resource' => '../src/Controller', 'tags' => array('controller.service_arguments')))), '/home/pc/projekt/config/services.yaml')in YamlFileLoader.php line 150
at YamlFileLoader->load('/home/pc/projekt/config/services.yaml', null)in FileLoader.php line 151
at FileLoader->doImport('/home/pc/projekt/config/services.yaml', null, false, null)in FileLoader.php line 90
at FileLoader->import('/home/pc/projekt/config/services.yaml')in GlobFileLoader.php line 27
at GlobFileLoader->load('/home/pc/projekt/config/{services}.{php,xml,yaml,yml}', 'glob')in DelegatingLoader.php line 40
at DelegatingLoader->load('/home/pc/projekt/config/{services}.{php,xml,yaml,yml}', 'glob')in Kernel.php line 36

In FileLoader.php line 166:
                                                                                                                                                         
  The autoloader expected class "App\Controller\LuckyController" to be defined in file "/home/pc/Religia/vendor/composer/../../src/Controller/LuckyController.php". The file was found but the class was not in it, the class name or namespace probably has a typo in /home/pc/Religia/config/services.yaml (which is loaded in resource "/home/pc/Religia/config/services.yaml").                                                                                   
                                                                                                                                                         

In DebugClassLoader.php line 212:
                                                                                                                                                         
  The autoloader expected class "App\Controller\LuckyController" to be defined in file "/home/pc/Religia/vendor/composer/../../src/Controller/LuckyController.php". The file was found but the class was not in it, the class name or namespace probably has a typo.

Pewnie dobrze wiecie co robić? Macie jakąś podpowiedź?

7
Pomoc / Filtrowanie listy formularza "CollectionType" w Sonata Admin
« Ostatnia wiadomość wysłana przez kratekk dnia Marca 11, 2019, 20:14:53 »
Witajcie, potrzebuję rozwiązania mojego problemu w Sonata Admin. Mianowicie, mam zbudowaną klasę ProduckAdmin która zawiera formularz typu "CollectionType" odnoszący się do klasy ProductHasAccessory (Produkt zawierający subprodukty). Wygląda on w ten sposób:

->add(
                'accessories',
                CollectionType::class,
                array(
                    'label' => 'Accessories',
                    'type' => AdminType::class,
                    'error_bubbling' => true,
                    'required' => false
                ),
                array(
                    'edit' => 'inline',
                    'inline' => 'table',
                    'admin_code' => 'admin.product_has_accessory',
                    'sortable' => 'sort'
                )
            )

Tak wygląda moja encja dla Product.php:

class Product
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $name;

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\ProductHasAccessory", mappedBy="accessory", cascade={"ALL"}, orphanRemoval=true)
     * @Orm\OrderBy({"sort" = "ASC"})
     */
    private $accessories;

public function getId(): ?int
    {
        return $this->id;
    }

    public function getName(): ?string
    {
        return $this->name;
    }

    public function setName(string $name): self
    {
        $this->name = $name;

        return $this;
    }
public function addAccessory(\App\Entity\ProductHasAccessory $accessory)
    {
        $accessory->setProduct($this);
        $this->accessories[] = $accessory;

        return $this;
    }

    public function removeAccessory(\App\Entity\ProductHasAccessory $accessory)
    {
        $accessory->setProduct(null);
        $this->accessories->removeElement($accessory);
    }

    public function getAccessories()
    {
        return $this->accessories;
    }
}

oraz Encja dla ProductHasAccessory.php:
class ProductHasAccessory
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @var int
     * @ORM\Column(name="sort", type="integer")
     */
    private $sort = 0;

    /**
     * @ORM\ManyToOne(targetEntity="Product")
     */
    private $accessory;

    /**
     * @ORM\ManyToOne(targetEntity="Product", inversedBy="accessories")
     * @ORM\JoinColumn(name="product_id", referencedColumnName="id")
     */
    private $product;

    public function __toString()
    {
        return (string)$this->getAccessory();
    }

    public function getId(): ?int
    {
        return $this->id;
    }

    public function setSort($sort)
    {
        $this->sort = $sort;

        return $this;
    }

    public function getSort()
    {
        return $this->sort;
    }

    public function getAccessory()
    {
        return $this->accessory;
    }

    public function setAccessory(\App\Entity\Product $accessory = null)
    {
        $this->accessory = $accessory;

        return $this;
    }

    public function getProduct()
    {
        return $this->product;
    }

    public function setProduct(\App\Entity\Product $product = null)
    {
        $this->product = $product;

        return $this;
    }
}

Problem polega na tym że w panelu Sonata gdy dodam jakiś subprodukt i chcę dodać kolejny to ten wcześniej dodany znowu pojawia się na liście dostępnych i tym samym mogę niechcący zdublować wpisy. Chciałbym również z CollectionType przefiltrować dynamicznie dostępne subprodukty usuwając z nich produkt który obecnie edytuję. Proszę o podpowiedź jak mogę uzyskać taki efekt? Próbowałem w ProductAdmin.php kombinować z funkcją:

public function createQuery($context = 'list')
    {
        $query = parent::createQuery($context);

        $id = 1;
        if(in_array($this->getRequest()->query->get('pcode'), $codearray)) {
            $query->andWhere(
                $query->expr()->not($query->expr()->eq($query->getRootAliases()[0] . '.id', ':param'))
            );
            $query->setParameter('param', $id);
        }
        return $query;
    }

I to działa ale nie potrafię wysłać do tej funkcji id obiektów już wcześniej dodanych oraz id obiektu rodzica. Ma ktoś pomysł jak to wykonać? Dziękuję
8
Offtopic / Odp: [Warszawa] PHP (Symfony) Developer do firmy z Woli- 13 000 PLN.
« Ostatnia wiadomość wysłana przez fishek dnia Marca 06, 2019, 16:24:39 »
mail poszedł :)
9
Offtopic / Odp: [Lublin lub Gdańsk] Backend Dev Symfony poszukiwany(a)
« Ostatnia wiadomość wysłana przez fishek dnia Marca 06, 2019, 16:22:14 »
Aktualne? Wysłałem maila ale brak odp
10
Pomoc / Odp: Doctrine - odświeżanie schematu bazy danych
« Ostatnia wiadomość wysłana przez kuba dnia Lutego 27, 2019, 17:23:13 »
Byc moze to czego szukasz to:

app/console doctrine:schema:validate

Cytuj
Ogólnie chodzi o to, że podczas pisania całego mapowania, to doctrine odświeża bazę danych i dokonuje alterów na bazie

Automagicznie to sie nie dzieje. Zwykle musisz uruchomic komende, ktora wykona zmiany na bazie.
Strony: [1] 2 3 ... 10