访问lalavel 5.2 blade中json_decode()返回的值

时间:2016-07-21 11:24:29

标签: php laravel laravel-5 laravel-5.2

我在laravel 5.2项目中使用第三方api。

我已安装guzzle来这样做。

  public function getmovie(Request $request)
{
    $client= new Client();


    $movieurl="http://api.cinemalytics.com/v1/movie/title/?value=madaari&auth_token=<token>";
    $movie=json_decode($client->request('GET',$movieurl)->getBody(),true);

    return $movie[0]['OriginalTitle'];


}

控制器函数上面的API代码返回正确的数据,没有问题但是当我返回视图并发送$ movie到它然后在刀片中我遇到问题访问$ movie的值

 public function getmovie(Request $request)
 {
      $client= new Client();
      $movieurl="http://api.cinemalytics.com/v1/movie/title/?value=madaari&auth_token=<token>";
      $movie=json_decode($client->request('GET',$movieurl)->getBody(),true);

      return view('admin.loadmovie',compact('movie'));
 }

在视图中,我将其作为

访问
 <div class="form-group  margin-top-20">
      <label class="control-label col-md-3">Movie Title
           <span class="required" aria-required="true"> * </span>
      </label>
      <div class="col-md-4">
           <div class="input-icon right">
                <i class="fa"></i>
                <input type="text" class="form-control" name="movie_title" value="{{ $movie[0]['OriginalTitle'] }}"> 
          </div>
      </div>
 </div>

它给了我错误信息,即试图获取非对象的属性

1 个答案:

答案 0 :(得分:0)

首先,您应该检查API是否返回数据,而不是假设您总是会有成功的响应。

你得试图获取非对象的属性,因为在json_decode()中第二个参数是将JSON转换为关联数组。因此,您要么删除 true ,要么将其作为数组访问。