仅在将数据从laravel传递到json时获取值

时间:2016-03-02 18:49:06

标签: php json laravel

我在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"}]

2 个答案:

答案 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数组。如果您不想使用密钥,可以省略密钥。