我在laravel中有一个查询,我想传入json。问题是键和值都传递给我指定的变量。我尝试在控制器内传递 $ data = json_encode($ ip); 并在视图中返回它,但我只得到一个结果。我怎样才能获得价值?
控制器
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 :(得分: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数组。如果您不想使用密钥,可以省略密钥。