Ostatnie wiadomości

Strony: [1] 2 3 ... 10
1
Pomoc / Odp: Dodatkowa zasada sprawdzania uzytkownika przy odswiezaniu
« Ostatnia wiadomość wysłana przez Michał Pipa dnia Marca 29, 2020, 20:21:58 »
To wydaje się być właściwym mechanizmem: How to Create and Enable Custom User Checkers.
2
Pomoc / Dodatkowa zasada sprawdzania uzytkownika przy odswiezaniu
« Ostatnia wiadomość wysłana przez dawid6512 dnia Marca 27, 2020, 09:15:54 »
Witam.

Pracuje na symfony 5.0.5 i muszę dorobić dodatkowa autoryzację przy kazdym refreshu strony, zeby zablokowac mozliwosc logowan z dwoch miejsc jednoczesnie.
W encji user mam pole lastLoginIp, ktore uzupelniam po zalogowaniu, lecz nie wiem gdzie moge to sprawdzic przy kazdym requescie czy ip sie zgadza z ip w bazie.

Jakies pomysly?
3
Pomoc / Odp: Wyszukiwarka tagów w relacji wiele do wielu - brak wszystkich danych - DOCTRINE
« Ostatnia wiadomość wysłana przez Valantir dnia Marca 13, 2020, 19:08:08 »
Spróbuj zrobić inaczej, a mianowicie zaczynając nie od pracownika, a od samego zawodu.:

$qb = $workerRepository->createQueryBuilder('p')
                ->select('p, w, l')
                ->leftJoin('p.workers', 'w');

            if (isset($professions) && count($professions) > 0) {
                $qb->andWhere('w.id IN (:professions)')
                    ->setParameter('professions', $professions);
            }
4
Pomoc / Wyszukiwarka tagów w relacji wiele do wielu - brak wszystkich danych - DOCTRINE
« Ostatnia wiadomość wysłana przez bboymietek dnia Marca 11, 2020, 19:58:22 »
Witam. Mam następujący problem:

2 encje: pracownicy i zawody w relacji wiele do wielu

Zrobiłem podstronę z wyszukiwarką pracowników, gdzie po wybraniu zawodu wyświetlają mi się pracownicy którzy mają ten zawód.

Problem jest taki że w wynikach wyszukiwania jeżeli pracownik ma np wpisane zawody: piekarz, cukiernik, a użytkownik skorzysta z wyszukiwarki i zaznaczy że chce wyszukać piekarzy to na wynikach wyszukiwania na widoku w szablonie widać tylko ten jeden zawód który wyszukiwałem tak jakby zniknęła ta informacja o pozostałych zawodach jakie ten pracownik ma przypisane

Podaje fragmenty kodu jak to zrobiłem - to wyszukiwanie:

KONTROLER:
/**
     * @Route("/pracownicy", name="workers")
     */
    public function workers(PaginatorInterface $paginator, Request $request, WorkerRepository $workerRepository)
    {
        $form = $this->createForm(WorkerSearchType::class, null, [
            'method' => 'GET',
        ]);

        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            $professions = $form->get('professions')->getData();

            $qb = $workerRepository->createQueryBuilder('w')
                ->select('w, p, l')
                ->leftJoin('w.professions', 'p');

            if (isset($professions) && count($professions) > 0) {
                $qb->andWhere('p.id IN (:professions)')
                    ->setParameter('professions', $professions);
            }

            $qb = $qb->getQuery();
        }

        return $this->render('kraft/workers.html.twig', ['pagination' => $paginator->paginate($qb, $request->query->getInt('page', 1), 20), 'form' => $form->createView()]);
    }


Czyli to tak jakbyśmy mieli tagi do czegoś przypisane i potem robimy wyszukiwarkę po tagach i klient wybiera jakiś jeden tag to po wyszukaniu i wyświetleniu wyników tam gdzie wyświetlalibyśmy tagi będzie tylko ta nazwa którą szukaliśmy mimo że coś może mieć przypisane kilka tagów.

Bardzo proszę o pomoc - stawiam "pifko" :)
5
Pomoc / Symfony 4.4, FOSUserBundle 2.2.x-dev i problem z encjami User oraz Group
« Ostatnia wiadomość wysłana przez savage.mephisto dnia Lutego 07, 2020, 01:57:34 »
Witam.
Dokonuję migracji z wersji 3.4 frameworka na wersję 4.4 i zaciąłem się na małej popierdółce.
Byłem zmuszony nieco przerobić klasę User i Group w customowym bundlu, którego używam do zarządzania userami, jednak podczas walidacji (php bin/console doctrine:schema:validate) wyskakuje błąd z interfejsami w tle:
Cytuj
Compile Error: Declaration of App\UserBundle\Entity\User::addGroup(App\UserBundle\Entity\Group $group): App\UserBundle\Entity\User must be compatible with FOS\UserBundle\Model\User::addGroup(FOS\UserBundle\Model\GroupInterface $group)

Pierwotnie w encji User miałem zapis:
/**
 * User
 *
 * @ORM\Table(name="fos_user")
 * @ORM\Entity(repositoryClass="App\UserBundle\Repository\UserRepository")
 */
class User extends BaseUser
{
    /**
     * @ORM\ManyToMany(targetEntity="App\UserBundle\Entity\Group")
     * @ORM\JoinTable(name="fos_user_user_group",
     *      joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
     *      inverseJoinColumns={@ORM\JoinColumn(name="group_id", referencedColumnName="id")}
     * )
     */
    protected $groups;

    public function __construct()
    {
        parent::__construct();
        $this->groups = new ArrayCollection();
    }

    /**
     * @return Collection|Group[]
     */
    public function getGroups(): Collection
    {
        return $this->groups;
    }

    public function addGroup(Group $group): self
    {
        if (!$this->groups->contains($group)) {
            $this->groups[] = $group;
        }

        return $this;
    }

    public function removeGroup(Group $group): self
    {
        if ($this->groups->contains($group)) {
            $this->groups->removeElement($group);
        }

        return $this;
    }
}

Natomiast w Group widniał zapis:
/**
 * @ORM\Entity
 * @ORM\Table(name="fos_group")
 * @ORM\Entity(repositoryClass="App\UserBundle\Repository\GroupRepository")
 */
class Group extends BaseGroup
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
     protected $id;

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

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

Przejrzałem pliki z modelami od wtyczki FOSUserBundle i tam nastąpiła zmiana - pojawiły się interfejsy.

Próbowałem dokonać korekt w encjach w poniższy sposób i przy użyciu polecenia php bin/console make:entity --regenerate utworzyć gettery i settery:

User
use FOS\UserBundle\Model\User as BaseUser;
use Symfony\Component\Security\Core\User\UserInterface as BaseUserInterface;
use FOS\UserBundle\Model\UserInterface as UserInterface;
use FOS\UserBundle\Model\GroupInterface as GroupInterface;
use FOS\UserBundle\Model\GroupableInterface as GroupableInterface;

 /**
 * User
 *
 * @ORM\Table(name="fos_user")
 * @ORM\Entity(repositoryClass="App\UserBundle\Repository\UserRepository")
 */
class User extends BaseUser implements UserInterface, GroupableInterface
{
    /**
     * @var GroupInterface[]|Collection
     */
    protected $groups;

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

Group
use FOS\UserBundle\Model\Group as BaseGroup;
use FOS\UserBundle\Model\GroupInterface as GroupInterface;

/**
 * @ORM\Entity
 * @ORM\Table(name="fos_group")
 * @ORM\Entity(repositoryClass="App\UserBundle\Repository\GroupRepository")
 */
class Group extends BaseGroup implements GroupInterface
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
     protected $id;

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

Jednak w encji User nie pojawiają się oczekiwane rezultaty - nie ma kolekcji dla groups, ani setterów i getterów.

Niby dopisałem "z palca" fragment:
    /**
     * {@inheritdoc}
     */
    public function getGroups()
    {
        return $this->groups ?: $this->groups = new ArrayCollection();
    }

    /**
     * {@inheritdoc}
     */
    public function getGroupNames()
    {
        $names = [];
        foreach ($this->getGroups() as $group) {
            $names[] = $group->getName();
        }

        return $names;
    }

    /**
     * {@inheritdoc}
     */
    public function hasGroup($name)
    {
        return in_array($name, $this->getGroupNames());
    }

    /**
     * {@inheritdoc}
     */
    public function addGroup(GroupInterface $group)
    {
        if (!$this->getGroups()->contains($group)) {
            $this->getGroups()->add($group);
        }

        return $this;
    }

    /**
     * {@inheritdoc}
     */
    public function removeGroup(GroupInterface $group)
    {
        if ($this->getGroups()->contains($group)) {
            $this->getGroups()->removeElement($group);
        }

        return $this;
    }

ale dlaczego tak się dzieje, że nie pojawia się to automatycznie po przebudowaniu modelu? Zapewne robię jakiś prosty błąd, którego nie widzę na ten moment, bo pora jest już dosyć późna.

Ktoś walczył z FOSUserBundle na SF 4 i wie, jak pozbyć się wspomnianych niedogodności? Będę wdzięczny za poświęcony czas i pomoc.
6
Pomoc / Odp: Strona na wzór
« Ostatnia wiadomość wysłana przez s173115 dnia Stycznia 27, 2020, 13:20:44 »
tak, ale bez dobrej znajomości programowania nic nie zrobisz
7
Pomoc / Strona na wzór
« Ostatnia wiadomość wysłana przez Miroslaw845 dnia Stycznia 26, 2020, 20:50:15 »
Witam czy dam radę za pomocą symfony stworzyć stronę podobną w mechanice do tej https://www.hendi.pl/
8
Pomoc / twig - slug dymiczne dane do javascript render controller
« Ostatnia wiadomość wysłana przez lechk dnia Grudnia 18, 2019, 12:47:17 »
Mam render controller w javascript w twig ( symfony 4.4 )
Moj problem polega na tym jak wczytac w miejsce pobrany- warosc z input text box2:
Gdy tak wpisuje otrzymuje error ze render controller nie widzi wartosci pobrany i ma racje bo jest ona w html a nie w twig
"Variable "pobrany" does not exist."
Czy moze mi ktos pomoc jak zainterpretowac wpisanie w render controller zmiennej ktora jest pobrana z input text

<input align="center" type="text" id="box2">
=== javascript ====
var pobrany= document.getElementById('box2');
wynik = "{{ render(controller('App\\Controller\\HomepageController:getdata', {'slug': pobrany} )) }}";
alert(wynik)

Z gory dziekuje za pomoc
9
Pomoc / Odp: Zmiana treści linka %confirmationUrl% w resetting.email.message
« Ostatnia wiadomość wysłana przez mathieus dnia Września 16, 2019, 09:41:10 »
usunąłem ten wiersz.

Próbowałem wyrażeń regularnych z TwigExtension:

<?php

// src/Twig/AppExtension.php
namespace App\Twig;

use 
Twig\Extension\AbstractExtension;
use 
Twig\TwigFilter;

class 
AppExtension extends AbstractExtension
{
    public function 
getFilters()
    {
        return [
            new 
TwigFilter('preg_a_replace', [$this'pregReplace']),
        ];
    }

    public function 
pregReplace($subject$pattern$replacement)
    {
//        return $replacement;
        
$splited preg_split($pattern$subject);
        
//print_r(preg_split($pattern, $subject));
        
return '<'.$splited[1].'>'.$replacement.'</a>';
//        return preg_replace($pattern, $replacement, $subject);
    
}
}
{{ confirmationUrl | preg_a_replace('/>*</','kliknij tutaj') }}e-mail "krzaczy" się jeszcze bardziej. To zadanie nie ma dużego priorytetu więc kończę.
Pozdrawiam
10
Pomoc / Odp: Zmiana treści linka %confirmationUrl% w resetting.email.message
« Ostatnia wiadomość wysłana przez Valantir dnia Września 14, 2019, 15:20:53 »
Wyrzuć
{% autoescape rozne_opcje %}
Strony: [1] 2 3 ... 10