symfony4.3은 ajax를 사용할 때 컨트롤러에서 ValidatorInterface를 사용할 수 없습니다.

떨어지는 액체

ValidatorInterface를 사용하여 컨트롤러에서 ajax로 제출된 양식의 유효성을 검사하려고 합니다.

그러나이 오류가 발생합니다.

"App\SocialStudio\AdminBundle\Controller\InfluencersController::addinfluencerajax()"의 인수 $validator를 해결할 수 없습니다. 컨트롤러를 서비스로 등록하는 것을 잊었거나 "controller.service_arguments"로 태그를 지정하지 못했습니까?

이것은 내 컨트롤러입니다.

<?php
namespace App\SocialStudio\AdminBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use App\Entity\Influencer;
use App\Form\Type\InfluencerType;

use Symfony\Component\Validator\Validator\ValidatorInterface;

class InfluencersController extends AbstractController
{
    public function Influencers(Request $request)
    {   
        // Get all Inlfuencers
        $influencers = $this->getDoctrine()
            ->getRepository(Influencer::class)
            ->findAll();

        // create modal form
        $influencer = new Influencer();
        $addInfluencerForm = $this->createForm(InfluencerType::class, $influencer);

        return $this->render('@Admin/influencers.html.twig', [
            'menu' => 'influencers',
            'influencers' => $influencers,
            'addInfluencerForm' => $addInfluencerForm->createView(),
        ]);

    }

    public function addInfluencerAjax(Request $request, ValidatorInterface $validator)
    {   

        ... form handling happens in this function ...

    }

}

이것은 ajax 호출에 대한 내 코드입니다.

$('#submitAddInfluencerForm').click(function(e){
           e.preventDefault();
            addInfluencerForm = $('#addInfluencerForm').serialize();

            $.ajax({
                url:'{{ path('AddInfluencerAjax') }}',
                type: "GET",
                dataType: "json",
                data: {
                    "influencer": addInfluencerForm
                },
                async: true,
                success: function (return_data)
                {
                    ...
                }
            });

        });

서비스.yaml

services:
  _defaults:
    autowire: true
    autoconfigure: true

  App\:
    resource: '../src/*'
    exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'

  App\Controller\:
    resource: '../src/Controller'
    tags: ['controller.service_arguments']

그리고 이것을 내 framework.yaml에 넣었습니다.

framework:
   validation: { enable_annotations: true }

`

떨어지는 액체

Leprechaun의 도움으로 작동하는 방법을 찾았습니다.

컨트롤러 클래스에 추가:

private $validator;
    public function __construct(
        ValidatorInterface $validator
    ) {
        $this->validator = $validator;
    }

다음과 같이 함수에서 유효성 검사기를 가져옵니다.

$validator = $this->validator;

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Symfony4에서 사용자를 로그 아웃 할 수 없습니다.

스테퍼 Angular4를 사용할 때 컨트롤러에서 텍스트 상자 값을 가져올 수 없습니다.

Laravel 컨트롤러에서 웅변 ::query()를 사용할 수 없습니다

serviceAccountId를 사용할 때 JWT에 서명 할 수 없습니다.

grails-대화 형 모드에서 컨트롤러에 새 메서드를 추가 할 때 요청 된 리소스를 사용할 수 없습니다.

mySQL에서 'timestampdiff'를 사용할 때 'where'를 사용할 수 없습니다.

angularjs에서 $ routeProvider를 사용할 때 컨트롤러에서 매개 변수가 null입니다.

컨트롤러를 {{렌더}} 할 때 Twig_Extention을 사용할 수 없습니다.

사용자 지정 셀에서 UISwitch를 사용하여 새 컨트롤러로 이동할 수 없습니다.

AJAX (jQuery Mobile)를 사용할 때 Javascript를 사용할 수 없습니다.

MVC 컨트롤러에서 여러 매개 변수를 사용할 때 Ajax 양식 직렬화가 바인딩되지 않습니다.

Form.visible 컨트롤을 사용할 때까지 do를 사용할 수 없습니다.

Zend Framework 1은 union ()을 사용할 때 where () 메서드를 사용할 수 없습니다.

angularjs에서 {{}}를 사용하여 뷰에서 컨트롤러 변수에 액세스 할 수 없습니다.

"?"를 사용할 수 없습니다. .htaccess 때문에 URL에서

경로에서 리소스를 사용할 때 컨트롤러에서 사용자 지정 함수 사용-Laravel

격리 된 범위를 사용할 때 지시문에서 컨트롤러의 함수를 호출합니까?

'ui-router'를 사용할 때 다른 컨트롤러에서 매개 변수를 가져 오는 방법은 무엇입니까?

Symfony2는 추상 함수 Validator \ ValidatorInterface :: validate ()를 상속 할 수 없습니다 (이전에 \ Validator \ ValidatorInterface에서 선언 된 추상).

Ajax를 사용하여 컨트롤러 작업 메서드를 호출 할 수 없습니다.

컨트롤러 (ASP.NET Core)에서 DI를 수행 할 때 SignalR에서 Clients.Caller 및 Clients.Others를 사용하는 방법은 무엇입니까?

컨트롤러를 추가 한 후 Swagger UI에서 메서드를 사용할 수 없습니다.

ODataQueryOptions를 사용할 때 $ select를 적용 할 수 없습니다.

로컬 호스트 JBOSS.7.1.1에서 컨트롤러를 사용할 수 없습니다.

컨트롤러에서 Sequelize 모델 사용자 정의 함수를 호출할 수 없습니다.

컨트롤러가 전달한 보기 변수에서 foreach를 둘 이상 사용할 수 없습니다.

Rails 컨트롤러를 사용하여 Heroku에서 파일을 다운로드 할 수 없습니다.

WebBrowser 컨트롤 내에서 Console.Log ()를 사용할 수 없습니다.

컨트롤러 ID를 기반으로 페이지에서 컨트롤러를 사용할 수 있습니까?

TOP 리스트

  1. 1

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  2. 2

    std :: regex의 일관성없는 동작

  3. 3

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  4. 4

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  5. 5

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  6. 6

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  7. 7

    Ionic 2 로더가 적시에 표시되지 않음

  8. 8

    Seaborn에서 축 제목 숨기기

  9. 9

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  10. 10

    복사 / 붙여 넣기 비활성화

  11. 11

    ArrayBufferLike의 typescript 정의의 깊은 의미

  12. 12

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  13. 13

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

  14. 14

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  15. 15

    PRNG 기간보다 순열이 더 많은 목록을 무작위로 섞는 방법은 무엇입니까?

  16. 16

    C # HttpWebRequest 기본 연결이 닫혔습니다. 전송시 예기치 않은 오류가 발생했습니다.

  17. 17

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  18. 18

    잘못된 구성 개체입니다. Webpack이 Angular의 API 스키마와 일치하지 않는 구성 개체를 사용하여 초기화되었습니다.

  19. 19

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  20. 20

    R의 마침표와 숫자 사이에 문자열 삽입

  21. 21

    Assets의 BitmapFactory.decodeStream이 Android 7에서 null을 반환합니다.

뜨겁다태그

보관