Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Доброго времени суток!
Возникла проблема, связанная с тем, что результат работы функции передаётся из контроллера в представление не в виде массива. Вследствие чего, возникает "Invalid argument supplied for foreach()" при попытке сделать @foreach.
Знаний у меня мало, не могу догнать, как уйти от этой проблемы.
Ниже представлены куски кода контроллера и вьюхи.
Заранее спасибо за ответы!
Кусок кода из контроллера:
foreach($channels as $channel) {
$current = Programm::select('start', 'name')
->where('channel_id', $channel->id)
->current()
->first();
if($current) {
$channel->current = $current;
$future = Programm::select('start', 'name')
->where('channel_id', $channel->id)
->future()
->limit(4)
->get();
if($future) {
$channel->future = $future;
}
}
}
return $channels;
Кусок кода из представления:
@foreach($tv as $item)
<div class="col-sm-6 col-md-4">
<div class="channel">
@if(isset($item->image))
<a href=""><img src="{{Config::get('images.static_server')}}/assets/images/{{$item->image->Name}}-tvsmall.jpg" alt="{{{$item->title}}}" /></a>
@endif
<h3><a href="//{{$menu['tv']['link']}}/{{$item->url}}/">{{{$item->title}}}</a></h3>
<ul>
<li class="current" title="Сейчас в эфире"><span class="time">{{date('H:i', $item->current['sec'])}}</span><span class="program">{{$item->current['name']}}</span></li>
@foreach($item->future as $future)
<li><span class="time">{{date('H:i', $future->start->sec)}}</span><span class="program">{{$future->name}}</span></li>
@endforeach
</ul>
</div>
</div>
@if($i++%2 == 0)
<div class="clearfix visible-sm"></div>
@elseif($i++%3 == 0)
<div class="clearfix visible-md visible-lg"></div>
@endif
@endforeach
Не в сети
}%Не понятно, как именно создаётся %%View%%? Что туда передаётся? %%array('tv' => $channels)%%?
Действительно, забыл указать ))
Основная функция в контроллере, выводящяя вьюху делает так:
$data['tv'] = $this->displayTV(); // это вызов той функции с $channels
return View::make('layouts.main', $data);
Proger_XP, спасибо за желание помочь. Я разобрался, оказывается проблема была в том, что $future у меня заполнялся только если заполнился $current. А выяснилось, что однажды в $current оказалось пусто )))
Страницы 1