2016-03-02 117 views
1

我在laravel中有一个查询,我想在json中传递。问题是关键和值传递给我分配的变量。我尝试通过$ data = json_encode($ ip);里面的控制器,并在视图中返回它,但我只得到一个结果。我怎样才能获得价值?仅当从laravel传递数据到json时才获取值

控制器

public function displayIP() 
{ 
    $ipadd = DB::table('seatplan_client')->select('ipadd')->get(); 

    foreach ($ipadd as $ipadds) 
    { 
     $ip = $ipadds->ipadd; 
     $data= json_encode($ip);//test 
     echo $data; 

    } 

    return View::make('seatplan')->with('ipadd',$ipadd); 
} 

查看

<script> var takenSeats = {{ json_encode($ipadd) }}</script> 

结果在页面源代码

var takenSeats = [{"ipadd":"192.168.240.1"},{"ipadd":"192.168.240.2"},{"ipadd":"192.168.240.23"},{"ipadd":"192.168.240.38"}] 
+0

你期望的结果是什么? 'var takenSeats = [{“0”:“192.168.240.1”},{“1”:“192.168.240.2”},{“2”:“192.168.240.23”},{“3”:“192.168.240.38 “}]'? –

+0

@KA_lin var takenSeats = [“192.168.240.1”,“192.168.240.2”,“192.168.240.23”,“192.168.240.38”]; –

+0

你有绑定到此表的模型吗? –

回答

2

你需要做一个数组, “翻译” 你的对象:

$ipadsArray = array(); 
foreach ($ipadd as $ipadds) 
{ 
    $ipadsArray[] = $ipadds->ipadd; 
} 
return View::make('seatplan')->with('ipadd',$ipadsArray); 

您需要这样做,因为您使用的是laravel的ORM,它返回stdObjects,当您序列化它时,您还可以获取公共属性。

如果你有一个模型,你可以实现serializable接口

+1

工作!谢谢 :) –

0
<script> var takenSeats = {{ json_decode($ipadd) }}</script> 

这将您的JSON数组转换为PHP数组。如果你不想使用它,你可以省略这些键。

相关问题