привет, я пытаюсь закодировать свой пароль для пользователя моего приложения Итак, я попытался зашифровать в своей функции setPassword
, к сожалению, я получаю эту ошибку, которую я не понимаю: вызов функции-члена encodePassword () на null изображение ошибки
<?php
namespace App\Entity;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
use Gedmo\Mapping\Annotation as Gedmo;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
use Symfony\Component\HttpFoundation\File\File;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\UserInterface;
/**
* Admin
*@Vich\Uploadable
* @ORM\Table(name="admin")
* @ORM\Entity
*/
class Admin implements UserInterface
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* Undocumented variable
*
* @var UserPasswordEncoderInterface
*/
private $passwordEncoder ;
/**
* @see UserInterface
*/
public function getPassword(): string
{
return (string) $this->password;
}
public function setPassword(string $password): self
{
$hash= $this->passwordEncoder->encodePassword($this,$password);
$this->password=$hash;
return $this ;
}
.......
что не так, и как я могу это исправить! спасибо
UserPasswordEncoder
). Если вы действительно хотите это сделать, вам нужно передать зависимость самостоятельно. Но это обескураживает, предпочтительный подход - получить услугу извне и установить уже закодированный пароль. - person msg   schedule 19.10.2020->encodePassword
статическим методом? - person agoldev   schedule 19.10.2020encodePassword
статическим методом (например, объявляете его с помощью общедоступной статической функции), вы можете получить к нему доступ с помощьюPasswordEncoder::encodePassword()
, и тогда нет необходимости вводить PasswordEncoder как зависимость от Entity. Для вспомогательных функций это допустимое решение, но вы не можете получить доступ к другим свойствам или функциям с помощью $ this в этом методе. Прочтите также о статических методах. - person agoldev   schedule 20.10.2020