라는 제품을 통해 컨트롤러에 사용자 정의 클래스의 개체를 전달하는 방법 : 컨트롤러의 동작에서심포니 2 : 다음과 같습니다 엔티티 클래스가 Ι AJAX
/**
* @ORM\Entity
* @ORM\Table(name="product")
*/
class Product
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=100)
*/
protected $name;
}
, 내가 검색 모든 위해 내 데이터베이스 제품은 나뭇 가지 템플릿에 해당 속성의 일부를 인쇄하려면 :
$products = $repository->findAll();
return $this->render('abcNikBundle:Prod:products.html.twig', array('products' => $products));
내 문제는 내가 다시 다른 행동 (클래스 제품의) 객체의 배열을 전달하고 몇 가지 물건을하고 싶은 것입니다, 단추를 클릭하면 AJAX 호출을 통해 내 나뭇 가지 템플릿 json_encode() 사용하려고 json_decode() 내 PHP 작업 있지만 작동하지 않았다. 내 나뭇 가지 템플릿에서 나는 다음과 같이로 json_encode 사용
var products = {{ products|json_encode() }};
내 AJAX 기능은 다음과 같습니다 :
$.post(Routing.generate('ajaxRoute', { prods: products }), function(data) {
$('#ajax_result').html(data);
});
마지막으로 내 컨트롤러에서 :
public function ajaxAction(Request $request) {
$myArray = $request->get('prods');
$myArray2 = json_decode($myArray);
return new Response(var_dump($myArray2));
}
통과하는 명확한 방법이 있나요 AJAX 호출을 통해 (사용자 정의 클래스의) 객체 또는 객체 배열을 만들 수 있습니까? 어떻게 할 수 있습니까?
IDK 도움이된다면,하지만'var에 제품 = "시도 {{제품 |로 json_encode() }} ";'직렬화되지 않은 데이터가'$. post '에 전달되어야하기 때문에 – Ziumin
자바 스크립트에서 제품 세부 사항을 변경하지 않는다면 전체 제품 문자열을 액션 호출로 전달할 때 어떤 이점이 있습니까? 이드를 방금 통과 한 다음 AJAX 액션에서 다시 찾으면 훨씬 더 작은 요청을 할 수 있을까요? – qooplmao
Qoop : 솔루션은 이미 내 대안 중 하나 였지만 전체 배열을 한꺼번에 가져올 수 있다면 내게 훨씬 쉽습니다. Ziumin : 아마도 당신 말이 맞을 것입니다. 나는 너의 제안을 너무 어쨌든 시도했지만 그건 내 진짜 문제가 아니었다. 감사! – iiirxs