2016-03-16 86 views
2

我與我的應用程序混淆,我有一個顯示來自Twitter API的image_url數據的問題。未定義的索引:媒體Twitter API

控制器

$events = Event::findOrFail($id); 
$query = $events->hashtag; 

// Application Programming Interface 
$stack = HandlerStack::create(); 

$middleware = new Oauth1([ 
    'consumer_key' => 'CONSUMER_KEY', 
    'consumer_secret' => 'CONSUMER_SECRET', 
    'token'   => 'TOKEN', 
    'token_secret' => 'TOKEN_SECRET' 
]); 

$stack->push($middleware); 

$client = new Client([ 
    'base_uri' => 'https://api.twitter.com/1.1/', 
    'handler' => $stack, 
    'auth' => 'oauth' 
]); 

$res = $client->get('https://api.twitter.com/1.1/search/tweets.json?q=%23', [ 
    'query' => ['q' => $query] 
]); 
$array = json_decode($res->getBody()->getContents(), true); 
$tes = (count($array['statuses'])); 

    if($request->user()->cannot('show', $events)){ 
     abort(405); 
    }else{ 
    return view('dashboard.events.show', compact('events'), [ 
    'events' => $events 
    ])->with([ 
     'array'=> $array, 
     'tes' => $tes 
    ]); 
} 

VIEW

@for ($i = 0; $i < $tes; $i++) 
<div class="col-md-4"> 
    <img src="{{$array['statuses'][$i]['entities']['media'][0]['media_url']}}" alt="" class="img-responsive"/> 
</div> 
@endfor 

結果

Error Messages: 
Undefined index: media 

在Twitter的API v1.1的媒體ENTI當人們不張貼圖片時,關係消失,所以當我試圖讓循環概念和media_url對象的json數據未定義時,並且比我導致的是錯誤消息。 對不起我的英語如此糟糕,我仍然在php和api新手。

+0

請顯示dd($ array ['statuses'] [$ i] ['entities']')。 –

+0

只有1個媒體結果 – Egi

+0

請發佈'dd'結果。另外,你是否在同一視圖或控制器中使用'['media']'? –

回答

1

你的代碼是罰款和你說,有時候沒有[「媒體」]屬性,因此要使用這樣的事情:當有一個畫面在

@for ($i = 0; $i < $tes; $i++) 
    @if(isset($array['statuses'][$i]['entities']['media'])) 
     <div class="col-md-4"> 
     <img src="{{$array['statuses'][$i]['entities']['media'][0]['media_url']}}" alt="" class="img-responsive"/> 
     </div> 
    @endif 
@endfor 

所以, $array,您的視圖將生成HTML以顯示它。如果你沒有,它會被跳過。

+0

alexey mazenin 謝謝你真棒,我的應用程序現在與您的代碼一起工作.. 現在我可以得到media_url。,謝謝你是一個聰明的人。 – Egi

+0

好男人,因此感謝您的幫助 – Egi