Controller是MVC模式中的控制器,它負(fù)責(zé)處理用戶請(qǐng)求,調(diào)用Model層的數(shù)據(jù),然后將結(jié)果發(fā)送給View層進(jìn)行展示。在現(xiàn)在的Web應(yīng)用中,Controller通常會(huì)發(fā)送JSON格式的數(shù)據(jù)給客戶端,以便JavaScript將其解析并動(dòng)態(tài)更新頁面。
向客戶端發(fā)送JSON數(shù)據(jù)非常簡單,只需要在Controller中調(diào)用Json方法即可:
public function getData() { $data = array( array('id' =>1, 'name' =>'Tom', 'age' =>20), array('id' =>2, 'name' =>'Jerry', 'age' =>22), array('id' =>3, 'name' =>'Lucy', 'age' =>18), ); return $this->json($data); }
以上代碼演示了如何返回一個(gè)包含三個(gè)元素的二維數(shù)組。這個(gè)數(shù)組會(huì)被Symfony的JsonResponse類轉(zhuǎn)換成JSON格式,然后發(fā)送給瀏覽器。
在瀏覽器中,我們可以通過Ajax請(qǐng)求獲取JSON格式的數(shù)據(jù):
$.ajax({ url: "/getData", type: "GET", success: function(data) { console.log(data); } });
以上代碼從服務(wù)器獲取JSON數(shù)據(jù),并在控制臺(tái)中打印出來。我們可以在控制臺(tái)中看到JSON數(shù)據(jù)已經(jīng)被成功地解析。
總而言之,Controller發(fā)送JSON數(shù)據(jù)是非常容易的。在Symfony框架中,我們只需要調(diào)用JsonResponse類即可。同時(shí),客戶端可以通過Ajax請(qǐng)求直接獲取JSON數(shù)據(jù)并對(duì)其進(jìn)行操作。