3

소나타 관리 번들을 사용하여 양식을 생성했습니다. 그럼 난 내 자신의 컨트롤러 (TestController)를 생성하고, CRUD 컨트롤러를 무시했습니다ajax symfony2에서 컨트롤러의 커스텀 함수를 호출하십시오.

는 내가 통해이 기능에 액세스하려고 해요 그런 다음 TestController의 새로운 기능,

namespace IFI2\MainProjectBundle\Controller; 

use Symfony\Component\Security\Core\SecurityContextInterface; 
use Symfony\Bridge\Monolog\Logger; 
use Sonata\AdminBundle\Controller\CRUDController as Controller; 


//use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\HttpFoundation\Response; 

class TestController extends Controller 
{ 

    public function getProductPricesAction() { 

     file_put_contents("/Applications/XAMPP/htdocs/IFI2 CMS/Logs.txt","HELO",FILE_APPEND); 

      return new Response(json_encode($response)); 

    } 
} 

을 추가 한 내 자바 스크립트 코드는 여기에

<script type="text/javascript"> 

    function test1() { 

     $.ajax({ 
      type:"POST", 
      //dataType: "json", 
      url: '{{ path('main_project.admin.test')}}', 
      success: function(successMsg) { 
       alert("successMsg"); 

      }, 
      error: function(errorMsg) { 
       alert("errorMsg"); 

      } 
     }); 
    } 

</script> 

main_project.admin.test: 
    pattern: /getProductPrices/ 
    defaults: { _controller: IFI2MainProjectBundle:Test:getProductPrices} 

, I했습니다 이미 하 내 routing.yml의 이 엔티티에 대한 개발 services.yml 항목, 컨트롤러 MainProjectBundle\Controller\TestControllermain_project.admin.test

좋은 말 현재 경로에 대해 정의 된 _sonata_admin 없습니다

내 응답에서 다음과 같은 오류를 받고 있어요

main_project.admin.cobrand: 
    class: MainProjectBundle\Admin\TestAdmin 
    arguments: [~, MainProjectBundle\Entity\Test, "MainProjectBundle:Test"] 
    tags: 
     - {name: sonata.admin, manager_type: orm, group: admin, label: Test} 
    calls: 
     - [setTemplate, [edit, MainProjectBundle:Test:edit.html.twig]] 

, 그것을 묻는 방법을 알려주세요.

감사합니다, 파이 나시

답변

3

protected function configureRoutes(RouteCollection $collection) 
{ 
    parent::configureRoutes($collection); 
    $collection->add('get_product_prices'); 
} 

main_project.admin.test

새로운 경로가 접두어로 당신의 관리자에서 $ baseRouteName을 가지고 경로를 제거하려면 관리 방법 configureRoutes에 새 경로 추가 이름이 :

base_route_name_get_product_prices 

사용

{{ path('base_route_name_get_product_prices') }} 
//or with admin 
{{ admin.generateUrl('get_product_prices') }} 
+0

컬렉션에 경로 매개 변수를 추가하는 방법은 무엇입니까? id를 매개 변수로 추가하려면 –

+0

두 변형 모두에서 동일합니다. 경로 ('base_route_name_get_product_prices', { 'id': 1}) admin.generateUrl ('get_product_prices', { 'id': 1}) –

관련 문제