На сайте создана система виджетов, которую я нашла на просторах англоязычного интернета.
В папке app создала папку "Widgets", структура выглядит так:
В корне папки "Widgets" создала файл ServiceProvider.php со следующим содержимым:
namespace App\Widgets;
class ServiceProvider extends \Illuminate\Support\ServiceProvider
{
public function boot()
{
$widgets = config("widget.widgets");
while (list(,$widget) = each($widgets)) {
if(is_dir(__DIR__.'/'.$widget.'/Views')) {
$this->loadViewsFrom(__DIR__.'/'.$widget.'/Views', 'widget.' . $widget);
}
}
}
public function register(){
}
}
В папке конфиг создала файл widgets.php с таким содержимым:
return [
'widgets' => [
'menu',
'slider',
'carousel',
'reviews',
'cart',
'wishlist',
'viewed',
'articles',
],
];
Пример кода виджета:
namespace App\Widgets\Slider;
class Slider
{
public function show()
{
$items = \App\Models\Slider::whereIsPublished(1)->get();
return view('widget.slider::index', compact('items'));
}
}
Вызывается виджет
$slider = new Slider();
и в нужном месте
$slider->show();
На локалке (Xampp с версией PHP 5.6) всё работает хорошо, но я закинула сайт на шаред хостинг с PHP 7.0.7 и там такая ошибка:
ErrorException in FileViewFinder.php line 112: No hint path defined for [widget.slider]. (View: /home/wearsh00/wear-shop.pp.ua/project/resources/views/index.blade.php)
Подскажите, пожалуйста. Нормальная ли эта система виджетов, или можно сделать красивее и проще?
И из-за чего возникает такая ошибка? Много где искала, но решение так и не нашла.
На всякий случай, настройки хостинга:
php70.demo.default-host.net
Спасибо.